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でグローバルに他のパッケージをインストールする際に、他の問題がなかったことを追加する必要があります。
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
Virtualenvライブラリの場所にパッケージをインストールするためにpipを作成できます。
Sudo -H venv/bin/pip install fabric