web-dev-qa-db-ja.com

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インストールは成功しました。ただし、i pip listインストールされたパッケージには、新しくインストールされたパッケージは表示されません。何が問題なのですか?

1
ussrback

投稿した内容が正確である場合、環境を正しく「調達」したようには見えないため、問題が発生している可能性があります。また、python2とpython3の両方がある場合の互換性の問題を回避するために、使用しているpythonのバージョンを指定することをお勧めします。そうでない場合は、質問を編集してください。この回答で次のことができます。順番に削除または編集します。

python 3仮想環境を作成するための基本は次のとおりです。

python3 -m venv /path/to/virtual/env
source ./path/to/virtual/env/bin/activate

最初にvenvをインストールする必要があるかもしれません(apt install python3-venv)パスと仮想環境自体は、ユーザーが書き込みを許可されている場所である必要があることに注意してください。この時点で、仮想環境にいるはずです((env) user@Host:~$ _)。

Sudopipは必要ありません。 Sudopipとともに使用すると、パッケージがグローバル/システム全体にインストールされます。これは、開発とテストのためにpython環境を分離するという仮想環境の目的をかなり無効にします。公式 Python =および問題のパッケージドキュメント(Sudoなしで正しくインストールされない場合)は、仮想環境に依存関係または追加の構成がないことを意味する場合があります。

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
1
kemotep