venv无法创建activate脚本python3

41

在尝试使用Python 3的venv在Ubuntu上创建虚拟环境时,它没有创建激活脚本,并且不断以错误1退出。

根据文档和其他SO帖子(例如https://dev59.com/FmMl5IYBdhLWcg3wwZIq#19848770),我尝试了两种不同的创建方法。

sayth@sayth-TravelMate-5740G:~/scripts$ python3 -m venv test4
Error: Command '['/home/sayth/scripts/test4/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1
sayth@sayth-TravelMate-5740G:~/scripts$ source test4/bin/activate
bash: test4/bin/activate: No such file or directory
sayth@sayth-TravelMate-5740G:~/scripts$ ls test4/bin/
python  python3
或者
sayth@sayth-TravelMate-5740G:~/scripts$ pyvenv-3.4 test5
Error: Command '['/home/sayth/scripts/test5/bin/python3.4', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1
sayth@sayth-TravelMate-5740G:~/scripts$ ls test5/bin/
python  python3  python3.4

如何完全创建一个虚拟环境?

如果我按照以下方式操作,仍无法成功,不确定问题出在哪里?

sayth@sayth-TravelMate-5740G:~/scripts$ python3 -Im venv panda3
Error: Command '['/home/sayth/scripts/panda3/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1
sayth@sayth-TravelMate-5740G:~/scripts$ python3 -m venv panda4
Error: Command '['/home/sayth/scripts/panda4/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1
4个回答

109

看起来你正在使用 Ubuntu 14.04 操作系统。它带有一个 已知问题pyvenv。但是,可以通过以下简单方法使用 Python 3 创建虚拟环境。

1. 不使用 pip 创建虚拟环境

python3 -m venv --without-pip test4
或者
pyvenv-3.4 --without-pip test4

2. 在您的环境中安装 pip

source test4/bin/activate
curl https://bootstrap.pypa.io/get-pip.py | python
deactivate
source test4/bin/activate
或者
pyvenv-3.4 --without-pip myvenv
source ./myvenv/bin/activate
wget https://pypi.python.org/packages/source/s/setuptools/setuptools-3.4.4.tar.gz
tar -vzxf setuptools-3.4.4.tar.gz
cd setuptools-3.4.4
python setup.py install
cd ..
wget https://pypi.python.org/packages/source/p/pip/pip-1.5.6.tar.gz
tar -vzxf pip-1.5.6.tar.gz
cd pip-1.5.6
python setup.py install
cd ..
deactivate
source ./myvenv/bin/activate
来源:HackerNewsAskUbuntu

另一个解决方法是执行以下操作:sudo apt-get install python-virtualenvvirtualenv myvenv -p python3感谢阅读日志并尝试这些解决方法。 - sayth
非常奇怪。我使用的是14.04和Python3,我的pyvenv没有任何问题。 - Eduard Luca
是的,那么16.04呢?它是否随着一个损坏的pyvenv被运送了出来?然而我记得几周前能够创建一些没有问题。 - Alice Antoine
2
我不得不在Ubuntu 20.04中使用这个解决方法。 - remcycles
1
@remcycles 在一个相对新的20.04安装(如果有关系,是WSL)上也遇到了这个问题,问题在于pip没有安装。在使用sudo apt-get install python3-pip安装后,重新创建虚拟环境,所有预期的文件都在那里了。 - tomocafe
显示剩余2条评论

14

Anaconda involucred.

如果您正在使用AnacondaMiniconda,这个解决方案可能会对您有所帮助:

Conda将Python本身作为一个包管理,因此可以使用conda update python 命令来更新Python,与pip不同,后者只能管理Python软件包。 Conda在Anaconda和Miniconda中都可用(这是一个易于安装的只包含Python和conda的下载)。

所以,这个命令可能会有所帮助:

conda update python

这让我非常不安,但好吧,在终端窗口中动手操作:(点击此处,查看图片)

感谢您的关注,祝您有美好的一天!


1
好的发现,我已经忘记了我前几天安装了anaconda。这解决了我的python3创建虚拟环境的问题。 - FishStix
这帮助我在使用Anaconda作为我的主要Python安装时创建“纯净”的虚拟环境。谢谢! - Aaron

13

命令:

python3 -m virtualenv env

适用于我,而:

python3 -m venv env

不。


奇怪的是,python3 -m virtualenv env 为我创建了一个 Python2 环境。 - Garrett

7
这对我有用:

这对我有用:

python3 -m venv --without-pip test4

一旦我在终端中输入了这个命令,就会创建一个名为“test4”的虚拟环境,并且“bin”目录中也会创建“activate”脚本。
如果您使用的是Python3,并遇到了问题,请用您想要创建的目录名称替换“test4”(或稍后重命名)。
以上操作即可完成。

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