我正在尝试使用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']

最佳答案

在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完全被破坏(不会产生有效的virtualenv),那么您绝对应该提交票证。参见bug tracker for the python-3.6 source package

关于创建venv时python3.6失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50169443/

10-15 17:44