使用 Python3 创建 virtualenv 时出错

Posted

技术标签:

【中文标题】使用 Python3 创建 virtualenv 时出错【英文标题】:Error creating virtualenv with Python3 【发布时间】:2017-11-11 08:50:53 【问题描述】:

我正在使用 Linux Mint 17,我正在尝试使用 Python3 创建一个新的 virtualenv,如下所示:

python3.6 -m venv env

这是我得到的错误:

Error: Command '['/home/ric/myprojs/django-example-channels/env/bin/python3.6', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.

我已经用谷歌搜索了这条错误消息,但没有找到任何信息量太大的信息。

这是我的 pip 版本,以防有什么不同:

pip --version
pip 9.0.1 from /usr/local/lib/python2.7/dist-packages (python 2.7)

我使用 Python2 已经有一段时间了,但我是 Python3 的新手。我不知道我可能会错过什么。

更新 1:

回答@cezar 的问题,当我输入 which python3 这就是我得到的:

$ which python3
/usr/bin/python3

更新 2:

回答@Chłop Z Lasu:

$ virtualenv -p python3.6 env
Running virtualenv with interpreter /usr/bin/python3.6
Using base prefix '/usr'
New python executable in /home/ric/myprojs/django-example-channels/example_channels/env/bin/python3.6
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 2328, in <module>
    main()
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 713, in main
    symlink=options.symlink)
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 925, in create_environment
    site_packages=site_packages, clear=clear, symlink=symlink))
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 1231, in install_python
    shutil.copyfile(executable, py_executable)
  File "/usr/lib/python3.6/shutil.py", line 104, in copyfile
    raise SameFileError("!r and !r are the same file".format(src, dst))

【问题讨论】:

您在虚拟环境中运行 python3.6。在 Linux Mint 17 中,python3 是默认安装的,应该在/usr/bin/python3 下可用。如果你这样做which python3会发生什么? 您的问题是关于python标准库模块venv (docs.python.org/3/library/venv.html)。这与virtualenv (pypi.python.org/pypi/virtualenv) 不同。也许您应该编辑标签以反映这一点。 我刚刚编辑了我的问题@cezar Using Python 3 in virtualenv的可能重复 顺便说一下,pip3 --version 是你应该检查的,注意输出是 Python2 【参考方案1】:

该错误表明 virtualenv 正在尝试在您的 python 路径中创建环境。因此,您必须指定您的 virtualenv 目的地

virtualenv -p python3.6 /path/to/yourenv

【讨论】:

【参考方案2】:

对于 venv 和 python3.6 安装 venv 可以使用下面的方法来解决问题

sudo apt install python3.6-venv

【讨论】:

【参考方案3】:

您必须通过以下代码安装 venv:

sudo apt install python3.6-venv

【讨论】:

【参考方案4】:

扩展上述答案:

该错误表明 virtualenv 正在尝试在您的 python 路径中创建环境。因此,您必须指定您的 virtualenv 目的地

由于-p是一个等价于--python的标志,所以也可以使用。

$ virtualenv --python=python3.6 /path/to/yourenv

或者

$ virtualenv -p python3.6 /path/to/yourenv 

【讨论】:

以上是关于使用 Python3 创建 virtualenv 时出错的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu下使用virtualenv创建环境

Python3在Windows下创建虚拟环境(virtualenv)

创建Python2和Python3的虚拟环境virtualenv

在 openSuSE 中使用带有 python3 的 virtualenv

在ubuntu中使用virtualenv创建python2和python3的虚拟环境

使用Virtualenv搭建Python3的Django环境