簡體   English   中英

在 WSL (Ubuntu) 中為 python3 安裝 venv

[英]Installing venv for python3 in WSL (Ubuntu)

我正在嘗試使用venv在 Linux 的 Windows 子系統上配置 venv。

我試過的:

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 1post 2和其他幾個帖子。 這些似乎都不能解決我的問題。

任何幫助將非常感激。

這里沒有任何東西對我有用,但這在 WSL2 中有效:

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

祝你好運!

試一試這種方法:

安裝 pip:

sudo apt-get install python-pip

安裝虛擬環境:

sudo pip install virtualenv

將您的虛擬環境存儲在某處:

mkdir ~/.storevirtualenvs

現在你應該可以創建一個新的 virtualenv

virtualenv -p python3 yourVenv

激活:

source yourVenv/bin/activate

要退出新的 virtualenv,只需deactivate

這比它需要的更令人頭疼。 它似乎與 WSL<->Windows 文件系統映射問題有關。 這篇博文也許能更好地描述它,但實際上你需要在特定掛載上存儲帶有文件的附加元數據,如本 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 運行該命令,以便文件變為隱藏文件,並且它起作用了。 希望它會幫助別人:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM