Debian
在 virtualenv 環境中安裝 pip 包的問題
在創建 python 虛擬環境
virtualenv -p python3 venv
並啟動它之後source venv/bin/activate
,我嘗試使用 pip 命令安裝 python 包->pip install Flask
這會引發權限錯誤:Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/var/www/flask/apnisi/venv/lib/python3.5/site-packages/werkzeug'
添加sudo到pip命令後
sudo pip install Flask
安裝成功;但是,當我pip list
安裝軟體包時,它不會顯示新安裝的軟體包。可能是什麼問題呢?
您可能會遇到問題,因為如果您發布的內容是準確的,那麼您似乎沒有正確“獲取”您的環境。我還建議您指定使用的 python 版本,以避免同時具有 python2 和 python3 時出現兼容性問題。如果不是這種情況,請編輯您的問題,然後可以依次刪除或編輯此答案。
創建 python 3 虛擬環境的基礎是:
python3 -m venv /path/to/virtual/env source ./path/to/virtual/env/bin/activate
您可能需要先安裝
venv
(apt install python3-venv
) 並記住您的路徑和虛擬環境本身必須是您的使用者有權寫入的位置。此時您應該在您的虛擬環境中 ((env) user@host:~$ _
)。你不應該需要
sudo
withpip
。使用sudo
withpip
會在全域/系統範圍內安裝包。這幾乎違背了虛擬環境的目的,即隔離 Python 環境以進行開發和測試。如果沒有正確安裝,請參閱官方sudo
Python 和有問題的封包檔,因為這可能意味著您在虛擬環境中缺少依賴項或其他配置。在 Debian 9.8 系統(Linux 4.9.0-8-amd64)上,執行上述步驟,然後執行以下命令,我得到了以下結果:
(env) user@host:~$ pip3 install flask (env) user@host:~$ pip3 list --format=legacy Click (7.0) Flask (1.0.2) itsdangerous (1.1.0) Jinja2 (2.10) MarkupSafe (1.1.1) pip (9.0.1) pkg-resources (0.0.0) setuptools (32.3.1) Wekzeug (0.15.1) (env) user@host:~$ python3 --version Python 3.5.3