pyvenv-3.4 返回了非零退出状态1。

181

我在Kubuntu 14.04上,想要使用Python3.4创建一个虚拟环境。之前我在其他文件夹里用Python2.7创建过虚拟环境。但是当我尝试:

pyvenv-3.4 venv

我收到以下错误:

Error: Command '['/home/fmr/projects/ave/venv/bin/python3.4', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1


4
这里提供了一个解决方案:http://askubuntu.com/questions/488529/pyvenv-3-4-error-returned-non-zero-exit-status-1 - treecoder
我曾经遇到过这个问题,后来发现在配置、编译和安装Python3之前需要安装libffi-devel。在完成这些步骤后,我的pip问题得到了解决。 - Joshua Schlichting
20个回答

265

你缺少 Python 3.4 的 venv 库,请运行以下命令:

$ apt-get install python3.4-dev python3.4-venv

然后创建您的虚拟环境

python3.4 -m venv myVenv

4
安装过程中出现了以下错误信息:E: 无法通过正则表达式找到任何软件包 'python3.7-venv'。 - indrajit narvekar
2
这是最好的解决方案!不需要安装不同的产品(virtualenv vs. venv),也不需要通过规避APT来安装。 - Erik Kalkoken
2
这个答案也适用于Python3.8——只需安装python3.8-dev和python3.8-venv即可。 - finnan
4
Python 3.9同样可用:apt install python3.9-dev python3.9-venv - chenghuayang
2
这适用于Python 3.10,没有问题。apt-get安装python3.10-dev python3.10-venv。 - Kyoujin
显示剩余2条评论

81

我找到了一个解决方案,安装python-virtualenv。

sudo apt-get install python-virtualenv

使用

virtualenv --python=/usr/bin/python3.4 venv

为什么你必须提供完整路径? - Revolucion for Monica
1
@ThePassenger:至少在我的情况下,你不需要。 - Soren Bjornstad
1
E: 软件包 'python-virtualenv' 没有安装候选项。 - Gulzar
4
请注意,virtualenv 不同于 venv - wovano

73

这是我对错误的解决方案:

$ python3.6 -m venv venv

失败的命令: ['/venv/bin/python3.6', '-Im', 'ensurepip', '--upgrade', '--default-pip']

解决方案:

$ rm -rf venv
$ apt install python3.6-venv
$ python3.6 -m venv venv

安装Python虚拟环境解决了我的问题。谢谢。 - kaptan
1
这也解决了3.9上的问题。谢谢。 - eduardosufan
没有修复3.10。 - Dave

68

这里是一个不受操作系统限制的解决方案:

无论是 pyvenv 还是 python 命令本身都包括一个 --without-pip 选项,可以让您避免使用 setuptools 或其他麻烦来解决此问题。请注意以下 内联注释,这是如何做到的,并且非常容易理解:

user$ pyvenv --without-pip ./pyvenv.d          # Create virtual environment this way;
user$ python -m venv --without-pip ./pyvenv.d  # --OR-- this newer way. Both work.

user$ source ./pyvenv.d/bin/activate  # Now activate this new virtual environment.
(pyvenv.d) user$

# Within it, invoke this well-known script to manually install pip(1) into /pyvenv.d:
(pyvenv.d) user$ curl https://bootstrap.pypa.io/get-pip.py | python

(pyvenv.d) user$ deactivate           # Next, reactivate this virtual environment,
user$ source ./pyvenv.d/bin/activate  # which will now include the pip(1) command.
(pyvenv.d) user$

(pyvenv.d) user$ which pip            # Verify that pip(1) is indeed present.
/path/to/pyvenv.d/bin/pip

(pyvenv.d) user$ pip install --upgrade pip # And finally, upgrade pip(1) itself;
(pyvenv.d) user$                           # although it will likely be the
                                           # latest version. And that's it!

希望这能帮到您。 (◠﹏◠)/


在手动安装Python 3.3的Debian Wheezy上无法工作:venv: error: unrecognized arguments: --without-pip - András Aszódi
1
谢谢!在亚马逊 Linux 上对我有用! - Laurie Koudstaal

32

在Linux Mint 17上(基本上是Ubuntu 14.04),遇到了同样的问题。安装python3.4-venv没有起作用,因此我创建了一个没有pip的虚拟环境,然后手动安装了pip。

  1. 创建虚拟环境并激活它

python3 -m venv --without-pip foo
source foo/bin/activate
下载最新版本的 setuptoolspip:
wget https://pypi.python.org/packages/source/s/setuptools/setuptools-7.0.tar.gz#md5=6245d6752e2ef803c365f560f7f2f940
wget https://pypi.python.org/packages/source/p/pip/pip-1.5.6.tar.gz#md5=01026f87978932060cc86c1dc527903e
解压并安装它们。
tar xf setuptools-7.0.tar.gz
tar xf pip-1.5.6.tar.gz
cd setuptools-7.0
python setup.py install
cd ../pip-1.5.6
python setup.py install

3
谢谢这个解决方案,对我很有效。我使用了以下命令一起安装pip和setuptools:wget https://bootstrap.pypa.io/get-pip.py -O - | python - akozin

15

对于使用 Windows 的用户,请按照以下步骤进行:

运行以下命令来确保 pip 已经更新到最新版本: python -m pip install --upgrade pip

运行以下命令来安装 virtualenv: python -m pip install --user virtualenv

最后,使用以下命令创建环境: python -m virtualenv <your env name>


我在SLES15SP2上使用Python 3.6.12时遇到了这个问题。这个解决方法对我很有效。 - highvelcty
我使用的是 Windows 操作系统,也遇到了这个错误。对我造成问题的原因是,在我的 Python 项目根目录中有一个名为“copy.py”的 Python 文件。将该文件重命名为其他独特的名称后,该问题得到了解决。 - kas
注意 这是针对Python 2.7的。激活您的虚拟环境并在之后检查版本。您可能会惊讶地发现一个较旧的Python版本。 - Gulzar
完美!为了完整起见,我建议使用以下命令来激活虚拟环境:<venv_path>\Scripts\activate - undefined

13

Pyvenv是新版本Python 3附带的工具,旨在取代virtualenv,因此它们并不完全相同。

在Ubuntu 14.04的第一个版本中,Python 3.4存在一些问题会导致这个错误。

对发行版进行升级可以解决这个问题。我猜在Kubuntu上也可能有效。

sudo do-release-upgrade -d # this takes a while, and involves a reboot as well. 
sudo apt-get install python3.4-venv
pyvenv-3.4 venv

在运行do-release-upgrade之前,请阅读do-release-upgrade的文档。使用-d标志将升级到最新的开发版本,其中可能包括一些不稳定的软件。

你无法撤消do-release-upgrade。


2
请注意,将发行版升级到开发版本还会更新其他软件。因此,这种解决方案可能会产生副作用。 - Håken Lid
2
很好提到。我已经在运行Ubuntu 14.10,但是安装python3.4-venv特别解决了这个问题。 - jnns
2
对我来说,“sudo apt-get install python3.4-venv” 这部分也足够了。 - Christian Aichinger
1
在这里升级你的发行版是过度杀伤力的。 - Jim Vargo

12

只需运行以下命令:

$ apt-get install python3-venv

然后通过运行以下命令创建您的虚拟环境:

$ python3.6 -m venv

3
针对Ubuntu20.04和Python3.10 -> sudo apt install python3.10-venv - Almabud

9

LMDE2 上,安装了以下内容:

  • Python 3.4.2
  • Debian 版本:8.11

这是我第一次在这台机器上使用 Python,遇到了以下问题:

freezed@machine ~/git/repo % python3 -m venv .venv                            
Error: Command '['/home/freezed/git/repo/.venv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1
zsh: exit 1     python3 -m venv .venv

我用以下命令解决了这个问题:

sudo apt-get install python3.4-venv

该命令用于安装Python虚拟环境。

9
这在我使用的Python 3.6和OSX系统中可行。
$ python -m venv --without-pip my_dir
$ source my_dir/bin/activate
$ curl https://bootstrap.pypa.io/get-pip.py | python
$ deactivate
$ source my_dir/bin/activate
(my_dir) user$

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接