在 virtualenv 中使用 Python 3

2022-09-05 01:18:43

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

我曾经在我的Mac上安装它。现在,如何创建使用新版本的虚拟环境?brew install python3

例如 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

答案 1

只需运行

virtualenv -p python3 envname

OP编辑后更新:

OP的virtualenv版本中存在一个错误,如此处所述。此问题已通过运行以下命令修复:

pip install --upgrade virtualenv

答案 2

Python 3具有对虚拟环境的内置支持 - venv。最好改用它。参考文档:

虚拟环境的创建是通过执行 pyvenv 脚本完成的:

pyvenv /path/to/new/virtual/environment

Python 3.6及更高版本的更新:

正如 pawciobiel 正确注释的那样,从 Python 3.6 开始被弃用,新方法是:pyvenv

python3 -m venv /path/to/new/virtual/environment