使用virtualenv,我使用默认版本的Python(2.7)运行我的项目。在一个项目中,我需要使用Python 3.4。

我使用brew install python3在Mac上安装它。现在,如何创建使用新版本的virtualenv?

例如sudo virtualenv envPython3

如果我尝试:

virtualenv -p python3 test

我得到:

Running virtualenv with interpreter /usr/local/bin/python3
Using base prefix '/usr/local/Cellar/python3/3.4.0_1/Frameworks/Python.framework/Versions/3.4'
New python executable in test/bin/python3.4
Also creating executable in test/bin/python
Failed to import the site module
Traceback (most recent call last):
  File "/Users/user/Documents/workspace/test/test/bin/../lib/python3.4/site.py", line 67, in <module>
    import os
  File "/Users/user/Documents/workspace/test/test/bin/../lib/python3.4/os.py", line 634, in <module>
    from _collections_abc import MutableMapping
ImportError: No module named '_collections_abc'
ERROR: The executable test/bin/python3.4 is not functioning
ERROR: It thinks sys.prefix is '/Users/user/Documents/workspace/test' (should be '/Users/user/Documents/workspace/test/test')
ERROR: virtualenv is not compatible with this system or executable

当前回答

简单运行

virtualenv -p python3 envname

OP编辑后更新:

正如这里所描述的,OP版本的virtualenv中存在一个bug。通过运行以下命令解决了问题:

pip install --upgrade virtualenv

其他回答

这就是在python/python3中运行虚拟环境所需的全部内容

首先,如果未安装virtualenv,请运行

pip3 install virtualenv 

立即运行:

virtualenv -p python3 <env name> # you can specify full path instead <env_name> to install the files in a different location other than the current location

有时cmd virtualenv失败,如果失败,请使用以下命令:

python3 -m virtualenv <env_name>  # you can specify full path instead <env_name> to install the files in a different location other than the current location

现在激活虚拟env:

source <env_name>/bin/activate

Or:

source `pwd`/<env_name>/bin/activate

现在运行

which python

您应该看到目录的完整路径和<env_name>/bin/python后缀

要退出virtualenv,请运行:

deactivate 

要解决Python问题,请转到此处

对于使用pipenv并希望安装特定版本的用户:

pipenv install --python 3.6

如果您将python3(brew install python2)与virtualenv burrito一起安装,那么可以执行mkvirtualenv-p$(哪个python1)env_name

当然,我知道virtualenv卷饼只是一种包装,但多年来它对我很有用,减少了一些学习曲线。

对于那些在使用Anaconda3(Python 3)时遇到问题的人。

你可以使用

conda create -n name_of_your_virtualenv python=python_version 

激活环境(Linux、MacOS)

source activate name_of_your_virtualenv

对于Windows

activate name_of_your_virtualenv

除了其他答案,我建议检查您正在执行的virtualenv实例:

which virtualenv

如果这在/usr/local/bin中找到了一些东西,那么有可能(甚至有可能)安装了virtualenv(可能使用easy_tools或pip的实例),而不使用系统的包管理器(在OP的情况下是brew)。这是我的问题。

几年前,当我更无知的时候,我安装了virtualenv,它屏蔽了我的系统包提供的virtualenv。

在移除了这个破旧的虚拟世界之后,我的问题消失了。