pip install:そのディレクトリの権限と所有者を確認してください


155

pipとpythonをインストールしているときに、次のように遭遇しました:

ディレクトリ '/ Users / Parthenon / Library / Logs / pi'またはその親ディレクトリは現在のユーザーが所有しておらず、デバッグログが無効になっています。そのディレクトリの権限と所有者を確認してください。sudoでpipを実行する場合は、-Hフラグが必要な場合があります。

を使用してインストールする必要があるためsudoです。

MacにPythonといくつかのライブラリがすでにインストールされていて、Yosemiteを実行しています。私は最近、クリーンワイプを実行してから、OSを再インストールする必要がありました。今、私はこのプロンプトを受け取り、それを変更する方法を理解するのに苦労しています

私のコマンドラインの前はParthenon$今ですPhilips-MBP:~ Parthenon$

私はこのコンピュータの唯一の所有者であり、これがこのコンピュータ上の唯一のアカウントです。これはpython 3.4にアップグレードするときに問題になるようです。適切な場所に何もないようです。virtualenvが期待どおりに機能しないなどです。


あなたのアカウント名はフィリップですか?
komaromy

昨日、自分のマシンでpipを使用しているときにこれが発生していることに気づきました。virtualenvが期待どおりに機能しないというのはどういう意味ですか?
Padraic Cunningham、2015

マシンにPython 3.4をインストールしましたが、ターミナルでpythonを実行すると、インストールプロセス全体を実行した後でも2.7が実行されます。私は通常、virtualenvについてのみ言及しました。これは、通常、ライブラリ/Python/3.4で見つかるはずですが、ライブラリ/Python/3.4がないためです
Phil Andrews

python3インタープリターを使用するには、python3またはpython3.4のようなものを使用する必要があります。再開されるアイテムは単なる設定であり、ubuntuにも同じオプションがあります。
Padraic Cunningham

@PadraicCunninghamでも同じ問題が発生していますか?最近ヨセミテにアップグレードしましたか?
Phil Andrews

回答:


127

実行pipからに移行したときも、Macでこの変更を確認しましたsudo pip-Hsudoに追加すると、メッセージが消えてしまいます。例えば

sudo -H pip install foo

man sudoがターゲットユーザー(この場合はroot)に設定する-H原因sudoを教えてくれ$HOMEます。

したがって、pipが調査中$HOME/Library/Logsudo、デフォルトではに設定さ$HOMEれていないよう/root/です。当然のことながら~/Library/Log、ルートではなくユーザーとしてあなたが所有しています。

これはピップの最近の変化だと思います。とりあえず実行してsudo -H、回避します。


18
使用sudo pipは完全に正しくないことに注意してください。詳細については、こちらをご参照くださいstackoverflow.com/questions/33004708/...
ミッコOhtamaa

同じ問題が発生しましたが、「-H」フラグを使用してインストールする必要があります。
マラキバザール

62

ここでの問題は、を使用して何らかの方法でvirtualenvにインストールしたことですsudo。たぶん偶然でしょう。つまり、rootユーザーはPythonパッケージデータを書き直して、すべてのファイルをrootが所有するようにし、通常のユーザーはそれらのファイルに書き込むことができなくなります。通常、virtualenvは通常のUNIXユーザーのみが使用および所有する必要があります。

この問題は、UNIXファイルのアクセス権パックをユーザーに変更することで修正できます。試してください:

$ sudo chown -R USERNAME /Users/USERNAME/Library/Logs/pip
$ sudo chown -R USERNAME /Users/USERNAME/Library/Caches/pip

その後、pipそれらのファイルを再度書き込むことができるはずです。

UNIXファイル許可管理の詳細


ピップはまだエラーで書き込みます。私にも同様の警告があり、私の権限は正しいです。OPは実際にはvirtualenvを使用していないため、パッケージをグローバルにインストールするにはsudoが必要であることは理にかなっています。
Padraic Cunningham

1
@PadraicCunningham:あなたの権限が正しくないというエラーがpipから出た場合は、ファイルの権限を表示してください。そうすれば、何が問題なのかがわかります。そうでなければ、助けは暗闇の中でのショットになります。
Mikko Ohtamaa 2015年

また、問題は元の作者とは異なる可能性があるため、別の質問を開くことをお勧めします
Mikko Ohtamaa

自分のユーザー名を使用して、エラーを受け取りました:入力:sudo chown -R USERNAME / Users / USERNAME / Library / Logs / pip出力:chown:/ Users / USERNAME / Library / Logs / pip:No
such

61

pip install --user <package name> (sudoは不要)非常によく似た問題で私のために働きました。


インストールには少なくとも1つの要件を指定する必要があります(「pipヘルプインストール」を参照)
Amir

0

基本情報

  • システム:mac os 18.0.0
  • 現在のユーザー:yutou

キー

  1. 現在のアカウントをホイールグループに追加する
sudo dscl . -append /Groups/wheel wheel $(whoami)
  1. Pythonパッケージモードを775に変更します。
chmod -R 775 ${this_is_your_python_package_path}

全部

  • python3が適切にコンパイルされた場合、情報は質問のとおりです。
  • 私は使用pip3 install requestsしてみました:
File "/usr/local/python3/lib/python3.6/os.py", line 220, in makedirs
    mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: 
'/usr/local/python3/lib/python3.6/site-packages/requests'
  • だから私cd /usr/local/python3/lib/python3.6/site-packagesは、ls -alそして得た:
drwxr-xr-x    6 root   wheel   192B  2 27 18:06 requests/

私がこれを見たとき、私は理解しました、makedirsは書き込みのアクションですが、要求モードがdrwxrwxr-x表示されたのはユーザーrootだけが要求ファイルを書き込むことができるということです。yutou(whoami)をグループホイールに、パッケージをグループホイールが書き込みできるように変更すると、書き込みが可能になり、問題が解決します。

yutouをグループホイールに追加する方法 +グループホイールを検出しsudo dscl . -list /groups GroupMembershipます。

wheel                    root

グループホイールは1つのメンバールートのみです。+ yutouをグループホイールに追加しsudo dscl . -append /Groups/wheel wheel yutouます。+チェック、sudo dscl . -list /groups GroupMembership

wheel                    root yutou

Pythonパッケージモードを変更する

chmod -R 775 /usr/local/python3/lib/python3.6

0

$ PATH変数を変更した場合も、問題が発生する可能性があります。これが問題であると思われる場合は、〜/ .bash_profileまたは〜/ .bashrcを確認してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.