web-dev-qa-db-ja.com

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

Pipとpythonをインストールしている間、私は次のようなことに遭遇しました。

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

なぜなら私は今Sudoを使ってインストールしなければならないからです。

私は私のMacにpythonと一握りのライブラリを既にインストールしていました、私はYosemiteを実行しています。私は最近きれいなワイプをしてからOSを再インストールしなければなりませんでした。今、私はこのプロンプトを得ています、そしてそれを変更する方法を考え出すのに苦労しています

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

私はこのコンピュータの唯一の所有者であり、これが唯一のアカウントです。これはpython 3.4へのアップグレード時に問題になるようです。正しい場所には何もないようです、virtualenvは私が期待するところに行きません、など.

149
Phil Andrews

'pip'の実行から 'Sudo pip'に移行したときにも、この変更が私のMacで見られました。

Sudoに '-H'を追加するとメッセージが消えます。例えば。

Sudo -H pip install foo

'man Sudo'は、 ' - H'によってSudoが$ HOMEをターゲットユーザー(この場合はroot)に設定するように指示します。

そのため、pipは$ HOME/Library/Logを調べており、SudoはデフォルトでHOMEを〜rootに設定していないようです。当然ですが〜/ Library/Logはrootではなくユーザーとしてあなたが所有しています。

これは最近のpipの変更であると思います。回避策として、「Sudo -H」を付けて実行します。

123
Von

pip install --user <package name>(Sudoは必要ありません)は非常によく似た問題を解決してくれました。

57
Safwan

ここでの問題は、あなたがどういうわけかSudoを使ってvirtualenvにインストールしたということです。おそらく偶然です。これは、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ファイルパーミッション管理の詳細

54
Mikko Ohtamaa

基本情報

  • システム:Mac OS 18.0.0
  • 現在のユーザー:yutou

キー

  1. 現在のアカウントをwheelグループに追加します
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
kougazhang

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

0
jeffhale