在 WSL (Ubuntu) 中为 python3 安装 venv

vic*_*bso 15 python ubuntu python-3.x python-venv windows-subsystem-for-linux

我正在尝试venv使用 Ubuntu 在适用于 Linux 的 Windows 子系统上进行配置。

我尝试过的:

1)venv通过pip( pip3,确切地说) 安装

pip3 install venv
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

ERROR: Could not find a version that satisfies the requirement venv (from versions: none)
ERROR: No matching distribution found for venv
Run Code Online (Sandbox Code Playgroud)

2)venv通过apt和安装apt-get

sudo apt install python3-venv
Run Code Online (Sandbox Code Playgroud)

在这种情况下,安装似乎已完成,但是当我尝试使用 来创建虚拟环境时python3 -m venv ./venv,出现错误,提示我这样做apt-get install python3-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.

Failing command: ['/mnt/c/Users/Vicubso/.../code/venv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']
Run Code Online (Sandbox Code Playgroud)

我还阅读了以下帖子 1帖子 2和其他几个帖子。这些似乎都不能解决我的问题。

任何帮助将非常感激。

trp*_*him 21

这里没有什么对我有用,但这在 WSL2 中做到了:

apt-get update
apt-get install libpython3-dev
apt-get install python3-venv
python3.8 -m venv whatever
Run Code Online (Sandbox Code Playgroud)

祝你好运!

  • 您需要 sudo 来执行您提到的命令。它对我有用,但不再适用以前的命令。+1 (2认同)

Fis*_*ode 14

试一试这种方法:

安装pip:

sudo apt-get install python-pip
Run Code Online (Sandbox Code Playgroud)

安装虚拟环境:

sudo pip install virtualenv
Run Code Online (Sandbox Code Playgroud)

将您的虚拟环境存储在某个地方:

mkdir ~/.storevirtualenvs
Run Code Online (Sandbox Code Playgroud)

现在你应该能够创建一个新的 virtualenv

virtualenv -p python3 yourVenv
Run Code Online (Sandbox Code Playgroud)

激活:

source yourVenv/bin/activate
Run Code Online (Sandbox Code Playgroud)

要退出新的 virtualenv,只需 deactivate


Rol*_*lie 7

这比它需要的更令人头疼。似乎它与 WSL<->Windows 文件系统映射问题有关。这篇博客文章可能对其进行了更好的描述,但实际上您需要在特定装载上存储带有文件的额外元数据,如本 MS devblog 中所述

我通过运行解决了这个问题:

sudo umount /mnt/c
sudo mount -t drvfs C: /mnt/c -o metadata
Run Code Online (Sandbox Code Playgroud)

之后,我无需 sudo 即可创建 python venv。


小智 7

当您进入/mnt/XXX(在 Windows 部分下)时会发生该错误。

切换到 Linux 并再次cd运行python3 -m venv ./venv,应该没问题