在 WSL (Ubuntu) 中为 python3 安装 venv

Installing venv for python3 in WSL (Ubuntu)

我正在尝试在 Windows 子系统上为 Linux 配置 venv Ubuntu。

我尝试过的:

1) 通过 pip 安装 venv(准确地说是 pip3

pip3 install venv

我收到以下错误

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

2) 通过 aptapt-get

安装 venv
sudo apt install python3-venv

在这种情况下,安装似乎已完成,但是当我尝试使用 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']

我还阅读了以下帖子 , post 2,以及其他几个人。 None 这些似乎解决了我的问题。

如有任何帮助,我们将不胜感激。

试试这个方法:

安装 pip:

sudo apt-get install python-pip

安装虚拟环境:

sudo pip install virtualenv

将您的虚拟环境存储在某处:

mkdir ~/.storevirtualenvs

现在你应该可以创建一个新的 virtualenv

virtualenv -p python3 yourVenv

激活:

source yourVenv/bin/activate

要退出你的新虚拟环境,只需deactivate

这里没有对我有用的东西,但在 WSL2 中有用:

sudo apt-get update
sudo apt-get install libpython3-dev
sudo apt-get install python3-venv
python3.8 -m venv whatever

祝你好运!

这比需要的更让人头疼。好像和WSL<->Windows文件系统映射问题有关。 This blog post perhaps describes it better, but the net is you need to store additional metadata with files on a particular mount, as described in this MS devblog.

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

sudo umount /mnt/c
sudo mount -t drvfs C: /mnt/c -o metadata

之后我可以创建 python venv 而无需 sudo。

当您在 /mnt/XXX(在 Windows 部分)时发生错误。

通过 cd 和 运行 再次切换到 Linux 部分 python3 -m venv ./venv 应该没问题

我收到了同样的错误消息,我的电脑上安装了 WSL(Ubuntu),最后我找到了这个文档: https://docs.microsoft.com/en-us/windows/python/web-frameworks#open-a-wsl---remote-window 具有讽刺意味的是,与我用作命令的唯一区别是名称,我使用的是 venv,然后我 运行 再次使用 .venv 命令,这样文件就变成了隐藏文件,并且它起作用了。希望它能帮助其他人:)