1. ホーム
  2. python

[解決済み] Macでroot権限でpipを実行すると "Permission Denied "となる。

2022-07-23 04:29:41

質問

仕事でWindows PCを使っているのと同じように、Macを使ってPythonのパッケージをインストールするようになりました。しかし、Macでは、頻繁に 権限が拒否されました。 エラーが頻繁に発生します。

そこで、私は pip install <package> の下に sudo の下にインストールしたいのですが、現在のユーザー アカウントの下にインストールしたいことを考えると、これは安全で許容される sudo の使用法でしょうか?

ログファイル I/O エラーからのトレースバックの例。

Command /usr/bin/python -c "import setuptools;__file__='/Users/markwalker/build/pycrypto/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /var/folders/tq/hy1fz_4j27v6rstzzw4vymnr0000gp/T/pip-k6f2FU-record/install-record.txt failed with error code 1 in /Users/markwalker/build/pycrypto
Storing complete log in /Users/markwalker/Library/Logs/pip.log
Traceback (most recent call last):
  File "/usr/local/bin/pip", line 8, in <module>
    load_entry_point('pip==1.1', 'console_scripts', 'pip')()
  File "/Library/Python/2.7/site-packages/pip-1.1-py2.7.egg/pip/__init__.py", line 116, in main
    return command.main(args[1:], options)
  File "/Library/Python/2.7/site-packages/pip-1.1-py2.7.egg/pip/basecommand.py", line 141, in main
    log_fp = open_logfile(log_fn, 'w')
  File "/Library/Python/2.7/site-packages/pip-1.1-py2.7.egg/pip/basecommand.py", line 168, in open_logfile
    log_fp = open(filename, mode)
IOError: [Errno 13] Permission denied: '/Users/markwalker/Library/Logs/pip.log'

更新 これはおそらくパーミッションのせいだと思いますが、最善の方法はpythonプロジェクトに仮想環境を使用することです。実行中 sudo pip の実行は絶対に必要でない限り避けなければなりません。

どのように解決するのですか?

を使用します。 仮想環境 :

$ virtualenv myenv
.. some output ..
$ source myenv/bin/activate
(myenv) $ pip install what-i-want

を使うのは sudo または昇格したパーミッションを使うのは、グローバルな、システム全体の Python インストールのために何かをインストールしたいときだけです。

あなたのためにパッケージを分離する仮想環境を使うのが一番です。 そうすれば、グローバルな Python のインストールを汚染することなく、遊び回ることができます。

ボーナスとして、virtualenv は昇格したパーミッションは必要ありません。