创建venv时python3.6失败

时间:2018-05-04 07:26:00

标签: python python-venv

我试图使用Python3.6设置一个venv,但是收到了here等其他帖子中已经提到过的错误。不幸的是,提出的解决方案都没有奏效。

我已经安装了必要的软件包

$ sudo apt install python3.6-venv
...
$ dpkg -l | grep "python3.6-venv"
ii  python3.6-venv                              3.6.5-5~16.04.york0                          amd64        Interactive high-level object-oriented language (pyvenv binary, version 3.6)

我还安装了python3-venv(适用于python 3.5)。 当我现在尝试设置我收到的venv

python3.6 -m venv test
The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.

    apt-get install python3-venv

You may need to use sudo with that command.  After installing the python3-venv
package, recreate your virtual environment.

Failing command: ['/home/User/Python/test/bin/python3.6', '-Im', 'ensurepip', '--upgrade', '--default-pip']

2 个答案:

答案 0 :(得分:3)

在Debian / Ubuntu系统上,python -m venv已被禁用,因为virtualenv工具捆绑依赖项的方式违反了DFSG 和Debian政策禁止包含非源代码构建的代码 在Debian中。

相反,在这样的系统上,你应该总是使用pyvenv*命令;每个Python版本都有一个pyvenv-3.y版本的脚本。在您的情况下,请使用

pyvenv-3.6 test

然后运行venv,以便以符合Debian策略的方式安装所需的包。

另请参阅随/usr/share/doc/pyenv-3.6/python3.6-venv包安装的pyvenv-3.6文件。

如果这仍然产生警告,请向Ubuntu软件包维护者提交一张票;弃用警告是Python 3.6中的新功能,Ubuntu应该在其打包中禁用该警告,或直接在ensurepip用例中修复python -m venv问题。如果pyvenv-3.6完全被破坏(没有产生有效的虚拟版),那么你一定要提交一张票。请参阅bug tracker for the python-3.6 source package

答案 1 :(得分:0)

Ubuntu 18.10,Python 3.7.3

sudo apt install python3.7-venv
python -m venv ./venv

这为我解决了问题。 .venv现在包含许多文件,例如.venv / bin / activate