VirtualEnv 和 python-embed

2024-04-13

我有一台使用 Python 2 运行许多应用程序的 Windows 机器。我想添加一个使用 Python 3 编写的新程序。为了确保我不会搞砸任何事情,我想使用嵌入了 Python 3 的 Virtualenv (Python 3 嵌入 amd64 https://www.python.org/ftp/python/3.6.4/python-3.6.4rc1-embed-amd64.zip).

因此,我提取了嵌入式 python 3 并尝试在启用 --python 选项的情况下运行 virtualenv 。

我尝试运行 virtualenv

    python -m virtualenv --python E:\Projects\python3-embed\python.exe E:\Projects\Virtual\

我得到了这个错误:

Running virtualenv with interpreter E:\Projects\python3-embed\python.exe
Using base prefix 'E:\\Projects\\python3-embed'
Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\virtualenv.py", line 2328, in <module>
    main()
  File "C:\Python27\lib\site-packages\virtualenv.py", line 713, in main
    symlink=options.symlink)
  File "C:\Python27\lib\site-packages\virtualenv.py", line 925, in create_environment
    site_packages=site_packages, clear=clear, symlink=symlink))
  File "C:\Python27\lib\site-packages\virtualenv.py", line 1147, in install_python
    writefile(site_filename_dst, SITE_PY)
  File "C:\Python27\lib\site-packages\virtualenv.py", line 362, in writefile
    with open(dest, 'wb') as f:
FileNotFoundError: [Errno 2] No such file or directory: 'E:\\Projects\\Virtual\\python36.zip\\site.py'

我不完全确定如何修复此错误。 python36.zip中有一个site.pyd文件,但virtualenv似乎无法使用它。


提前抱歉

I knew这不是你想要的答案,但我努力了(our)方式,最后得到了这个解决方案。


TL;DR

2021 年 12 月 17 日更新

下载页面已移至https://winpython.github.io/ https://winpython.github.io/出于我的目的,我现在将下载 Winpython64-3.10.0.1dot.exe。请不要忘记验证可执行包的校验和。

2021 年 12 月 17 日更新结束

Use the 带有后缀“零”的便携式安装程序 https://sourceforge.net/projects/winpython/files/WinPython_3.7/3.7.0.2/ from 温Python https://winpython.github.io/

  • WinPython64-3.7.0.2Zero.exe(64位版本,你要这个)
  • WinPython32-3.7.0.2Zero.exe(32位版本)

The Too Long version

我尝试过的

  • 是的,我下载了python-3.7.0-embed-amd64.zip from 这一页 https://www.python.org/downloads/release/python-370/

  • 是的,我按照说明进行设置这一页 https://michlstechblog.info/blog/python-install-python-with-pip-on-windows-by-the-embeddable-zip-file/

  • 是的,它作为 python 解释器工作

      D:\temp\test>python
      Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32
      >>>
    
  • 是的,我安装了该软件包虚拟环境

      D:\temp\test>virtualenv --version
      16.0.0
    
  • 然后,繁荣(你问的地方)

      D:\temp\test>virtualenv ENV
      Using base prefix 'd:\\portable\\python-3.7.0-embed-amd64'
      Traceback (most recent call last):
      File "runpy.py", line 193, in _run_module_as_main
      File "runpy.py", line 85, in _run_code
      File "D:\portable\python-3.7.0-embed-amd64\Scripts\virtualenv.exe\__main__.py", line 9, in <module>
      File "D:\portable\python-3.7.0-embed-amd64\lib\site-packages\virtualenv.py", line 712, in main
          symlink=options.symlink)
      File "D:\portable\python-3.7.0-embed-amd64\lib\site-packages\virtualenv.py", line 927, in create_environment
          site_packages=site_packages, clear=clear, symlink=symlink))
      File "D:\portable\python-3.7.0-embed-amd64\lib\site-packages\virtualenv.py", line 1149, in install_python
          writefile(site_filename_dst, SITE_PY)
      File "D:\portable\python-3.7.0-embed-amd64\lib\site-packages\virtualenv.py", line 363, in writefile
          with open(dest, 'wb') as f:
      FileNotFoundError: [Errno 2] No such file or directory: 'D:\\temp\\test\\ENV\\python37.zip\\site.py'
    

    似乎有问题virtualenv, 搜索, 得到一个悬而未决的问题 https://github.com/pypa/virtualenv/issues/422,而且我不喜欢那么长的解决方案。

    这是虚拟环境结束.

  • 然后,我尝试了venv:

      D:\temp\test>python -m venv venv
      D:\portable\python-3.7.0-embed-amd64\python.exe: No module named venv
    

    是的“内置模块”丢失了,并且嵌入式分发文档 https://docs.python.org/3.7/using/windows.html#embedded-distribution甚至没有提到它,只是一些关于不包括 Tcl/tk (...)、pip 和 Python 文档.

    这是venv结束.

好吧,从我原来的观点重新开始

选择的目的嵌入式分布是(就像SOMEBODY):

确保我不会搞砸任何事情

  1. 这包括“不要安装任何进入我的不稳定且超大的窗户"
  2. 但并不一定“must use the 官方嵌入式发行版"
  3. 某物便携且值得信赖就足够了,是的便携式Python http://portablepython.com/
  4. 但主页上写着“Portable Python is not being returned”,并提供了一些选择
  5. 经过一番阅读后,我发现,我想要的是温Python http://winpython.github.io/,版本带有Zero
  6. 达达...就是这样.

关于嵌入式分发的一些事情(来自官方文件 https://docs.python.org/3/using/windows.html#windows-embeddable)

嵌入式发行版是一个包含最小 Python 环境的 ZIP 文件。这是intended for acting as part of another application,而不是由最终用户直接访问。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VirtualEnv 和 python-embed 的相关文章

随机推荐

  • 当超级视图完成加载时调整子视图的大小

    我知道有无数类似的问题 要么全部导致使用灵活的高度 宽度 要么将 TranslatesAutoresizingMaskIntoConstraints 设置为 false 我使用我创建的扩展添加了一个视图 extension UIView f
  • 大师必须从纱线、火花开始

    当我想要运行 SparkPi 示例时 我收到此错误 beyhan beyhan spark 1 2 0 bin hadoop2 4 home beyhan spark 1 2 0 bin hadoop2 4 bin spark submit
  • Scala 中的十六进制字符串到 Int、Short 和 Long

    只是找不到在 Scala 中将十六进制字符串转换为数字 Int Long Short 的方法 有没有类似的东西 A toInt base 您可以使用 Java 库 val number Integer parseInt FFFF 16 gt
  • 在 iOS7 上停止 Safari 提示保存卡片数据

    我有一个客户网站 提示他们在 iOS7 下保存卡详细信息 我完全找不到任何关于如何或是什么导致 iOS 决定这是正确的事情的信息 有人有任何想法吗 我们遇到了这个问题 正如 Guy Thomas 提到的 这是因为表单中的密码字段带有抄送字段
  • 有什么方法可以格式化 Plotly for Python 漏斗图中的数字吗?

    我有一个漏斗图 其中一些值大于 9000 这些值用带 K 的点符号显示 表示末尾有千 我花了 20 分钟在 Google 和 Plotly 文档中查找 但未能找到关于如何格式化数字的明确答复 这是输入数据 这是我正在使用的代码 fig px
  • v-bind:style 语法在内联样式中不起作用

    我对 Vue 和整个系统都很了解v bind事情让我陷入困境 基本上 我正在尝试实现这种语法 但是使用 Vue 的v bind 因为我不能在内联 CSS 样式中使用变量 div class card style background col
  • Bash 中使用 if-else 进行整数比较

    我有一个变量叫做choice 现在 我尝试使用 if 来比较输入的值 read choice if choice 2 then do something elif choice 1 then do something else else e
  • 如何打印我的 Java 对象而不得到“SomeType@2f92e0f4”?

    我有一个类定义如下 public class Person private String name constructor and getter setter omitted 我尝试打印我的类的一个实例 System out println
  • 访问表的第n列

    我有一个包含以下结构和数据的表 tr td td tr
  • 服务绑定到活动

    这是我的代码 public class MainActivity extends Activity private ComponentName mService private Servicio serviceBinder private
  • Checkstyle,无法创建根模块

    我正在尝试在项目中配置 Checkstyle 我已经添加 apply plugin checkstyle checkstyle assign the latest checkstyle version explicitly default
  • 如何通过 selenium-webdriver 和 Java 使用 java 实现鼠标悬停

    在尝试实现门户自动化时http demo nopcommerce com http demo nopcommerce com 我无法将鼠标悬停在 电子 菜单上并选择 相机和照片 子菜单 使用以下脚本进行相同的操作 WebElement el
  • 为什么 Matplotlib 颜色图的结构不同?

    我能够绘制 RGB 分量some使用这个简单的 Python 脚本绘制 Matplotlib 颜色图 import numpy as np import matplotlib pyplot as plt from matplotlib im
  • R Shiny:渲染summary.ivreg输出

    我正在尝试在 R Shiny 中呈现工具变量回归摘要 这是代码 iv ivreg lwage educ exper nearc4 exper summary iv 当我使用 renderTable 时 出现以下错误 没有适用于 xtable
  • angular2动态表格计算金额总计

    尝试计算总 payOffs amount payOffs 是一个 FormArray 不知道如何正确执行 以便总数会观察到当前金额和新金额的变化 这是我作为基本代码的 plnkr http plnkr co edit nHSIsciSZNT
  • 使用 C++ 基类构造函数?

    在使用模板时 我遇到需要使基类构造函数可从继承类访问以创建对象 以减少复制 粘贴操作 我想通过这样做using关键字与函数 case 的方式相同 但不起作用 class A public A int val class B public A
  • 无法获取 Cabal 更新以在公司网络内工作

    我正在尝试在工作中使用 haskell 我已经安装了 HP 但无法让 cabal 进行更新 我认为这是一些防火墙或 DNS 问题 cabal update Downloading the latest package list from h
  • 如何在 JNI 中读取字节数组?

    是否可以在 JNI 中引用整个字节数组而不调用任何副本 在本机 C 代码中 我有一个从 Java 传递的字节数组 我只想将一些数据与该字节数组进行比较 因此我不想进行任何内存复制 是否可以 我知道我可以通过使用类似的 GetPrimitiv
  • Tango 的未来与 D1 的停产

    知道D1 will be discontinued effective December 31 2012 鉴于官方发行版位于 D1 之下 是否还值得继续使用 Tango 如果您谈论的是一旦 D1 的官方支持消失 是否值得继续使用 Tango
  • VirtualEnv 和 python-embed

    我有一台使用 Python 2 运行许多应用程序的 Windows 机器 我想添加一个使用 Python 3 编写的新程序 为了确保我不会搞砸任何事情 我想使用嵌入了 Python 3 的 Virtualenv Python 3 嵌入 am