virtualenv環境でのpipパッケージのインストールに関する問題

virtualenv環境でのpipパッケージのインストールに関する問題

Python仮想環境を作成し virtualenv -p python3 venvて有効にした後、source venv/bin/activatepipコマンド->を使用して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'

pip コマンドに sudo を追加するとインストールは完了しますが、パッケージのインストールsudo pip install Flask時にpip list新しくインストールされたパッケージは表示されません。何が問題なのでしょうか?

ベストアンサー1

投稿した内容が正確であっても、環境を正しく「インポートする」とは思えないため、問題が発生することがあります。また、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:~$ _

グローバル/システム全体にパッケージをインストールするためにsudowithを使用するpip必要はありません。これは、開発とテストのためにPython環境を分離する仮想環境の目的をほとんど崩します。引用するsudopip公式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

おすすめ記事