web-dev-qa-db-ja.com

Pipの問題-EnvironmentErrorのためにパッケージをインストールできませんでした

MacのPythonおよび/またはpipに問題があると思います。 Python 2.7をグローバルにインストールしてから、通常virtualenvsをセットアップしてPython3.6.4をインストールしますが、最終日かそこらで、インストールできないFabricやSSH2などのパッケージで問題が発生しましたパッケージをインポートしようとすると、さまざまなエラーまたはFabricがスローされます。

私は現在、Fabricを削除してFabric3とそのスローエラーをインストールしようとしています:

Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/Users/david/Documents/projects/uptimeapp/env/lib/python3.6/site-packages/Fabric3-1.14.post1.dist-info'
Consider using the `--user` option or check the permissions.

(env) Davids-MacBook-Air:uptimeapp david$ pip install fabric3 --user
Can not perform a '--user' install. User site-packages are not visible in this virtualenv.

Sudo pip install fabricを実行するとインストールされますが、次の警告が表示されます。

The directory '/Users/david/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with Sudo, you may want Sudo's -H flag.
The directory '/Users/david/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with Sudo, you may want Sudo's -H flag.

しかし、私はsudoでpipインストールすることはお勧めではないと思ったのですか?

これらは、pip install ssh2-pythonをしようとしたときに表示されるエラーです

ssh2/agent.c:569:10: fatal error: 'libssh2.h' file not found
    #include "libssh2.h"
             ^~~~~~~~~~~
    1 error generated.
    error: command 'clang' failed with exit status 1

    ----------------------------------------
Command "/Users/david/Documents/projects/uptimeapp/env/bin/python3.6 -u  -c "import setuptools,   tokenize;__file__='/private/var/folders/bl/97vt48j97zd2sj05zmt4xst00000gn/T  /pip-install-mpyq41q4/ssh2-python/setup.py';f=getattr(tokenize, 'open',   open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record   /private/var/folders/bl/97vt48j97zd2sj05zmt4xst00000gn/T/pip-record-qul_k3kq/install-record.txt --single-version-externally-managed --compile -  -install-headers /Users/david/Documents/projects/uptimeapp/env/bin/../include/site/python3.6  /ssh2-python" failed with error code 1 in /private/var/folders/bl/97vt48j97zd2sj05zmt4xst00000gn/T/pip-install-mpyq41q4/ssh2-python/

Fabricを削除してSudoコマンドを使用してFabric3をインストールすることはできましたが、それはしません。

Python2.7またはenvsでグローバルに他のパッケージをインストールする際に、他の問題がなかったことを追加する必要があります。

11
goblin_rocket

Sudoを使用してインストールすることで仮想環境を既に中断しているため、permission deniedエラーが発生します。走る

$ Sudo chown -R david:staff /Users/david/Documents/projects/uptimeapp/env

権限を修正します。他のアクセス許可の問題がある場合は、ホームディレクトリ全体のアクセス許可を修正することも賢明です。

$ Sudo chown -R david:staff /Users/david/

パッケージの再インストールが再び機能するはずです:

$ source /Users/david/Documents/projects/uptimeapp/env/bin/activate
$ (env) pip uninstall -y fabric
$ (env) pip install fabric

'libssh2.h' file not found

つまり、ssh-pythonをインストールする前に、対応するlibを最初にインストールする必要があります。

$ brew install libssh2
10
hoefling

Virtualenvライブラリの場所にパッケージをインストールするためにpipを作成できます。

Sudo -H venv/bin/pip install fabric
1
Hajar Homayouni