如何使用virtualenv在Windows中使用32位和64位Python?

如何使用virtualenv在Windows中使用32位和64位Python?,python,virtualenv,Python,Virtualenv,我在C:\Python27安装了64位Python(2.7.5),在C:\Python27\u 32安装了32位Python 我想使用virtualenv来建立一个32位的虚拟环境,当我需要使用32位Python时,我可以切换到这个环境。一旦设置了该环境,我计划编辑bin\activate文件,以更改指向32位目录的所有必要路径 但是,当我尝试创建虚拟环境时,出现以下错误: > virtualenv --python=C:\Python27_32\python.exe foo Runni

我在
C:\Python27
安装了64位Python(2.7.5),在
C:\Python27\u 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
但是,如果我在环境变量中将每个
C:\Python27
更改为
C:\Python27\u 32
,那么我就无法运行virtualenv(
importorror:没有名为pkg\u resources的模块


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

要在您更改路径后运行虚拟环境,您需要将virtualenv安装到32位Python中-没有什么能阻止您在每个Python中都有一个virtualenv副本

假设您有python 2.7.c 64位作为默认的python,并且您还安装了python 2.7.x 32位,那么您无论如何都需要这两个版本-还假设您在windows上,您的两个python将安装在如下位置:

C:\Python27
C:\Python27\u 64

后者在你的道路上

另外,假设在这两个版本中都安装了pip,那么virtualenv仍然需要它—要将virtualenv安装到32位python,您可以运行:

Path\To\32Bit\pip install virtualenv

在命令提示符下使用:

设置CONDA_FORCE_32位=1
conda create-n virtualenv_name python=x.x anaconda

以上内容可以在@I个人试用后发现,并成功运行(安装了32位python x.x)。使用Anaconda是没有必要的,但它将安装所有的Anaconda软件包,如pandas

免责声明:下面的评论是一个警告,不是对任何其他人提交的答案的攻击


正如我的朋友告诉我的,“不鼓励手动更改路径,主要是因为您必须通知其他使用Python(您不一定知道)的应用程序指向不同的文件夹,并且更改不一定会在整个系统中保持一致。在某种程度上,virtualenvs也会这样做,但会更干净(某种程度上)可预测的时尚”

如果首先安装32位版本,然后安装64位版本(并且将python添加到path),那么可以使用更新的python启动器(
py
)创建64位版本的virtualenv


py-m venv我的环境名称

谢谢Steve。成功了。有关于路径的问题,但将单独提问。如何将virtual env安装到32位python中?@JPC请参阅扩展答案。
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