pip3无法在Windows 10上的Ubuntu 20.04 LTS上创建虚拟环境,因为无法使用ensurepip。

3

我曾经在 Ubuntu 18.04 LTS 上使用虚拟环境,但是我卸载了它并在 Windows 10 上安装了 Ubuntu 20.04 LTS。现在,当我创建一个 venv 时,出现错误。

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.

当我安装sudo apt-get install python3-venv时,它显示已安装但仍然存在严重问题。
Reading package lists... Done
Building dependency tree
Reading state information... Done
python3-venv is already the newest version (3.8.2-0ubuntu2).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

1
我最近几天也将Win 10切换到Ubuntu 20.04,尝试为我的项目设置虚拟环境时遇到了同样的问题。这只是为了确认该问题很容易被重现,并且我收到了有关python3-venv已正确安装的相同消息。 - PHY6
5个回答

9
我在尝试在 /mnt/d [NTFS] 上创建虚拟环境时,在 Ubuntu 20.04 WSL2 Win10 build 2004 上遇到了相同的问题。通过以下命令卸载和重新挂载元数据,我成功解决了此问题。
sudo umount /mnt/d
sudo mount -t drvfs D: /mnt/d -o metadata

2
尝试了很多不同的方式,最终这个方法起作用了,谢谢。 - Matthew Macfarlane

1
我找到了解决这个问题的方法:我创建venv目录的挂载驱动器是由root拥有的。如果你认为这可能是原因,请尝试在Ubuntu LTS的主目录中创建venv。你应该能够在那里创建它。
在我的项目目录中,我最终使用了递归chown命令,命令如下:
sudo chown --from=root:root -R myname:myname *

注意,您可能不想在整个驱动器上执行此操作,因此请小心使用递归命令的位置。
以下是设置全新Python 3.8环境的基本说明,除了在创建虚拟环境之前,我确保是该目录的所有者:

https://www.digitalocean.com/community/tutorials/how-to-install-python-3-and-set-up-a-programming-environment-on-an-ubuntu-20-04-server

注意:更正确的做法可能是使用这里的wsl.conf指令更改驱动器的安装选项,但当我尝试时似乎没有帮助:https://devblogs.microsoft.com/commandline/chmod-chown-wsl-improvements/

在我发现这个方法之前,我还做了其他一些事情:

  • 我尝试了卸载/重新安装“Ubuntu 20.04 LTS”,并且按照上面的digitalocean步骤能够复制你所遇到的错误。
  • 我还卸载了名为“Ubuntu 20.04 LTS”的Microsoft Store应用程序,并重新安装了一个简单标记为“Ubuntu”的选项。这可能没有什么区别,因为两个选项都会安装Ubuntu 20.04 LTS的20200423版本。

针对Ubuntu 20.04中Python 3.8的其他注意事项,这些问题直接影响我在激活新的虚拟环境后遇到的问题,可能不适用于您:

  • 您可能需要pip install wheel,以便像pip install jupyter这样的命令不会出错。

我相信你关于所有权问题的说法是正确的,但出于某种原因,使用chown命令对我没有起作用(尝试了您的命令并将我的名称替换为其他变体,例如删除from)。我能够在我的主目录中创建环境。不过,Prabath回复中提到的卸载技巧对我很有用。 - acmshar

0

我有点晚了,默认情况下,20.0.4版附带python3.8

如果您特别想安装其他版本的virtualenv,请尝试安装该版本并重试。

例如:对于python3.6

sudo apt-get install python3.6

并创建一个虚拟环境

python3.6 -m venv venv_name

0

在查看了Phy6的回答之后,我尝试以sudo身份运行它,结果成功了。

$ sudo python3 -m venv venv

当不必要时使用sudo并不是一个好主意。 - Andrew

0

对我来说,这个问题是由于我尝试在另一个虚拟环境中创建虚拟环境而导致的。"venv-ception"

我通过以下方式解决:

  1. 取消激活 venv
  2. 然后创建一个新的 venv

即:

# 1. deactivate the venv
deactivate
# 2. create and activate your new venv
mkdir .venv
python3 -m venv .venv
source .venv/bin/activate

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