使用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

当前回答

以下简单命令可以创建3.5版的虚拟env

apt-get install python3-venv

python3.5 -m venv <your env name>

如果希望虚拟env版本为3.6

python3.6 -m venv <your env name>

其他回答

我收到了同样的错误消息。tbrisker的解决方案在我的情况下不起作用。相反,这解决了问题:

$ python3 -m venv .env

我尝试过pyenv,它非常方便地切换python版本(全局版本、本地文件夹版本或虚拟版本):

brew install pyenv

然后安装所需的Python版本:

pyenv install 3.5.0

并简单地创建virtualenv,其中包含所需解释器版本的路径:

virtualenv -p /Users/johnny/.pyenv/versions/3.5.0/bin/python3.5 myenv

就是这样,检查版本:

. ./myenv/bin/activate && python -V

还有pyenv pyenv virtualenv的插件,但不知怎么的,它不适合我。

在Mac上,我必须执行以下操作才能使其正常工作。

mkvirtualenv --python=/usr/bin/python3 YourEnvNameHere

这对我有用

virtualenv --no-site-packages --distribute -p /usr/bin/python3 ~/.virtualenvs/py3

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

pipenv install --python 3.6