2013-07-22 164 views
1

我在C:\Python27上安装了64位Python(2.7.5),在C:\Python27_32上安装了32位Python。如何使用virtualenv在Windows中使用32位和64位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:\Python27C:\Python27_32,那么我不能VIRTUALENV运行(ImportError: No module named pkg_resources)。

这是我第一次搞错了virtualenv,所以我确定我错过了一些基本的东西。我如何创建一个使用我的32位Python安装的虚拟环境?

回答

7

为了让您的虚拟环境在更改路径后运行,您需要将virtualenv安装到32位python中 - 没有任何东西阻止您在每个python中使用virtualenv的副本。

假设你有蟒蛇2.7.c 64位为默认Python和还安装了蟒蛇2.7.x 32位就需要两个反正 - 也假设你对你的两条蟒蛇将窗户地方安装,如:

C:\Python27C:\Python27_64

与后者的路径上。

而且假设你已经PIP同时安装在,你会需要它的virtualenv反正 - 到的virtualenv安装到32位的蟒蛇,你可以运行:

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

谢谢史蒂夫。这工作。有关于路径的问题,但会单独询问。 – capitalistcuttle

+0

很高兴听到它。 –

+0

你怎么才能真正安装虚拟环境到32位的Python? – JPC

相关问题