2013-10-19 26 views
55

pipのPythonパッケージをUbuntuマシンの仮想環境に配備しようとしましたが、アクセス権に関連する問題が発生しました。たとえば:virtualenvでpipを使用するときに "Permission denied"を避ける方法

error: could not create '/home/test/virtualenvs/TestVirtualEnv/lib/python3.3/site-packages/markdown2.py': Permission denied

私はそれは、仮想環境内のグローバルパッケージをインストールし、そしてないので、sudoすることはできません。

(TestVirtualEnv)[email protected]:~$ pip install markdown2 

はで終了します。 I chown ed site-packages; lsには、easy_install,pipおよびsetuptoolsに関連するディレクトリのみが表示され、Markdownには何も表示されません。

許可のエラーが発生することなく、pipの仮想環境でパッケージを展開するにはどうすればよいですか?あなたはsudoとしてvirtualenvを作成し、virtualenvsudoなしで動作するとき

+0

明確にするために、このvirtualenvを 'sudo'で作成しましたか? –

+0

@sebastian_oe:私は信じていました。私は確かに再作成します。 –

+2

これは問題かもしれません。 'sudo'なしでvirtualenvを作成してみてください。 –

答えて

67

virtualenvパーミッションの問題が発生することがあります。

あなたの質問のコメントで分かったように、ここで解決策をsudoせずに、その中に(特に書き込み)仕事のことができるようにするためにsudoなしvirtualenvを作成にあります。

+2

sudoが必要な/ optに作成したい場合、virtualenvはsudoなしではインストールされません。 – Neutralizer

+3

@sebastian_oe私はあなたを愛していると思います – AndrewK

+3

sudoなしで 'virtualenv'を作る方法は? – Tunn

3

sudoを使ってvirtualenvを作成しませんでした。だからセバスチャンの答えは私には当てはまりませんでした。私のプロジェクトはutilsと呼ばれています。 utils.egg-inforootないmacuserによって所有され、あなたが見ることができるように

-rw-r--r-- 1 macuser staff 983 6 Jan 15:17 README.md 
drwxr-xr-x 6 root  staff 204 6 Jan 14:36 utils.egg-info 
-rw-r--r-- 1 macuser staff 31 6 Jan 15:09 requirements.txt 

:私はutilsディレクトリをチェックして、これを見ました。それは私にpermission deniedエラーを与えていた理由です。 rootによって作成されたので、/Users/macuser/.virtualenvs/armoury/lib/python2.7/site-packages/utils.egg-linkも削除する必要がありました。私はpip install -e .を取り除いた後にもう一度やっていました。

56

ソリューション:

rootとしてvirtualenvのを作成した場合は、次のコマンドを実行します。

sudo chown -R your_username:your_username path/to/virtuaelenv/ 

これはおそらくあなたの問題を解決します。

乾杯私の場合は

+0

これは私にとってはうまくいった(chown /usr/local/lib/python3.4)私はrootとしてvirtualenvを作成しましたが、実際にはPython3.4をrootとしてインストールしました。私はまだテストしていますが、私はこの解決策でさらに問題に遭遇すると思いますか、またはこのchownがほとんどのエラーを修正しますか? – ntk4

+0

virtualenvまたはpythonをrootとして作成したかどうかはどうですか? –

2

、私はmkvirtualenvを使用していたが、私はのpython3を使用するつもりだったことを教えてくれませんでした。

mkvirtualenv hug 
pip3 install hug -U 

.... 
error: could not create '/usr/lib/python3.4/site-packages': Permission denied 

それはのpython3を指定した後に働いた:

mkvirtualenv --python=/usr/bin/python3 hug 
pip3 install hug -U 
0

あなたはピップを使用する前に、仮想環境を活性化しなかった私は、このエラーを得ました。

でそれを試してみてください。

$(your venv path) . bin/activate 

そして、あなたはsudoを使用する場合ときにディレクトリがルートprivileges.Soを使用して作成されたvirtualenvの作成中に、あなたのメインフォルダに

0

をピップ-r requirements.txtを使用sudo以外のユーザーとパッケージをインストールしようとすると、そのパッケージにインストールする権限がありません。 したがって、sudoなしでvirtualenvを作成し、sudoなしでインストールしてください。

また、グローバルpythonにインストールされたパッケージをvirtualenvにコピーすることもできます。

cp -r /lib/python/site-packages/* virtualenv/lib/python/site-packages/ 
+0

これは問題ではありませんでした。あなたがコメントを読むと、OPは最初にsudoで仮想envを作成しました。 – Nick

関連する問題