我在C:\Python27
安装了64位Python(2.7.5),在C:\Python27_32
安装了32位Python。
我想使用virtualenv来设置一个32位的虚拟环境,当我需要使用32位Python时,我可以切换到该环境。一旦设置了该环境,我计划编辑bin\activate
文件以更改指向32位目录的所有必要路径。
但是,当我尝试创建虚拟环境时,出现以下错误:
> virtualenv --python=C:\Python27_32\python.exe foo
Running virtualenv with interpreter C:\Python27_32\python.exe
PYTHONHOME is set. You *must* activate the virtualenv before using it
New python executable in foo\Scripts\python.exe
Installing setuptools...............
Complete output from command C:\Users\<user>\Drop...o\Scripts\python.exe -c "#!python
\"\"\"Bootstra...sys.argv[1:])
" C:\Python27\lib\site...ols-0.6c11-py2.7.egg:
Traceback (most recent call last):
File "<string>", line 278, in <module>
File "<string>", line 238, in main
File "build/bdist.linux-i686/egg/setuptools/command/easy_install.py", line 21, in <module>
File "build/bdist.linux-i686/egg/setuptools/package_index.py", line 2, in <module>
File "C:\Python27\Lib\urllib2.py", line 94, in <module>
import httplib
File "C:\Python27\Lib\httplib.py", line 71, in <module>
import socket
File "C:\Python27\Lib\socket.py", line 47, in <module>
import _socket
ImportError: DLL load failed: %1 is not a valid Win32 application.
----------------------------------------
...Installing setuptools...done.
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\virtualenv.py", line 2577, in <module>
main()
File "C:\Python27\lib\site-packages\virtualenv.py", line 979, in main
no_pip=options.no_pip)
File "C:\Python27\lib\site-packages\virtualenv.py", line 1091, in create_environment
search_dirs=search_dirs, never_download=never_download)
File "C:\Python27\lib\site-packages\virtualenv.py", line 611, in install_setuptools
search_dirs=search_dirs, never_download=never_download)
File "C:\Python27\lib\site-packages\virtualenv.py", line 583, in _install_req
cwd=cwd)
File "C:\Python27\lib\site-packages\virtualenv.py", line 1057, in call_subprocess
% (cmd_desc, proc.returncode))
OSError: Command C:\Users\<user>\Drop...o\Scripts\python.exe -c "#!python
\"\"\"Bootstra...sys.argv[1:])
" C:\Python27\lib\site...ols-0.6c11-py2.7.egg failed with error code 1
它似乎是在64位文件夹而不是在32位文件夹中进行导入。我不确定这是因为环境变量的设置方式,还是因为我首先在64位Python下安装了virtualenv。
这些是我的用户环境变量:
Path: %PYTHONHOME%;C:\Python27\Scripts
PYTHONHOME: C:\Python27
PYTHONPATH: C:\Python27\Lib;C:\Python27\Lib\lib-tk;C:\Python27\DLLs;
但如果我在环境变量中将每个C:\Python27
更改为C:\Python27_32
,那么我就无法运行(ImportError: No module named pkg_resources
)。
这是我第一次搞乱virtualenv,所以我肯定我错过了一些基本的东西。如何创建使用32位Python安装的虚拟环境?
答案 0 :(得分:9)
为了在更改路径后运行虚拟环境,你需要将virtualenv安装到32位python中 - 没有什么可以阻止你在每个python中都有virtualenv的副本。
假设你有python 2.7.c 64位作为你的默认python并且你还安装了python 2.7.x 32位你无论如何都需要 - 同时假设你在Windows上两个蟒蛇将被安装在某个地方,如:
C:\Python27
和C:\Python27_64
后者在你的道路上。
另外假设你已经安装了pip,无论如何都需要它用于virtualenv - 将virtualenv安装到你可以运行的32位python:
Path\To\32Bit\pip install virtualenv
或
set path=C:\Python27;C:\Python27\Scripts;%path%
rem The above should set your 32 bit to be found before your 64 bit
pip install virtualenv
答案 1 :(得分:0)
在命令提示符下使用:
set CONDA_FORCE_32BIT=1
conda create -n virtualenv_name python=x.x anaconda
上面的内容可以在How to install win-32 package on a 64-bit system with conda install上找到,我亲自尝试过,它成功运行(安装了32位python x.x)。不必使用Anaconda,但它将安装所有的anaconda软件包,例如pandas。
免责声明:以下评论仅是警告,并非对其他任何人提交的答案的攻击。</ p>
正如我的朋友告诉我的那样,“不建议手动更改路径 ,主要是因为您必须通知其他使用Python的应用程序(并且您不一定知道)指向一个不同的文件夹,并且更改在整个系统中不一定是一致的。从某种意义上说,virtualenvs可以执行相同的操作,但是以一种更简洁,可预测的方式进行。”
答案 2 :(得分:0)
如果您先安装 32Bit 版本,然后再安装 64Bit 版本(并且您将 python 添加到路径),那么您可以使用更新的 python 启动器(py
)来创建您的 virtualenv 的 64Bit 版本< /p>
py -m venv my-env-name