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