【问题标题】:Installing venv for python3 in WSL (Ubuntu)在 WSL (Ubuntu) 中为 python3 安装 venv
【发布时间】:2020-08-15 02:49:18
【问题描述】:

我正在尝试在带有 Ubuntu 的 Linux 的 Windows 子系统上配置 venv

我尝试过的:

1) 安装venvpip(确切地说是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) 安装venvaptapt-get

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 1, post 2 和其他几个。这些似乎都不能解决我的问题。

任何帮助将不胜感激。

【问题讨论】:

    标签: python python-3.x ubuntu windows-subsystem-for-linux python-venv


    【解决方案1】:

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

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

    祝你好运!

    【讨论】:

    • 我认为,最近对 WSL 的更新使当前接受的答案无效。这通过 wsl.exe 对我有用,而其他建议给出了很多错误。
    • 并且您需要 sudo 来执行您提到的命令。它适用于我,但不再适用于以前的命令。 +1
    • 使用 WSL2 为我工作。就像上面的评论一样,我不能给你足够的压力:在 apt-get 上使用 sudo。
    【解决方案2】:

    试一试这种方法:

    安装点子:

    sudo apt-get install python-pip
    

    安装虚拟环境:

    sudo pip install virtualenv
    

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

    mkdir ~/.storevirtualenvs
    

    现在你应该可以创建一个新的虚拟环境了

    virtualenv -p python3 yourVenv
    

    激活:

    source yourVenv/bin/activate
    

    要退出新的 virtualenv,只需 deactivate

    【讨论】:

    • 它似乎有效。但我不知道这是否是理想的解决方案。当我用virtualenv yourVenv 创建一个虚拟环境时(也许你的答案有错字?)它只有在我使用sudo 时才有效。另外...使用virtualenv 代替venv 有什么优势吗?不过还是非常感谢。至少现在我有东西可以继续我的工作了。
    • 是的。请参阅此link。它讨论了运行程序的不同变体和环境。有些解释是针对 windows 而不是 linux 系统的。
    • 非常感谢!现在对所有这些选项有了更好的理解。我接受你的回答,因为它解决了我的问题。
    • 我在找到正确的存储库时遇到了一些问题......在安装 python-pip 时添加 --fix-missing 似乎可以解决问题。
    【解决方案3】:

    这比它需要的更令人头疼。它似乎与 WSLWindows 文件系统映射问题有关。 This blog post 可能描述得更好,但网络是您需要在特定挂载上存储带有文件的附加元数据,如 in this MS devblog 所述。

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

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

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

    【讨论】:

    • 这是唯一对我有用的,非常感谢!
    • 结合了这一点,以及 trpt4him 的响应有所帮助。谢谢!有什么方法可以启动 WSL,这样我就不必每次想创建一个新的环境时都这样做?
    【解决方案4】:

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

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

    【讨论】:

      【解决方案5】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-20
        • 1970-01-01
        • 1970-01-01
        • 2021-04-06
        • 1970-01-01
        • 2015-08-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多