Pip problèmes, ne Pourrait pas installer les paquets en raison d'une EnvironmentError
Je pense que j'ai quelques problèmes avec Python et/ou pip sur mon Mac. J'ai installé Python 2.7 à l'échelle mondiale et puis j'ai l'habitude de configuration virtualenvs et installer Python3.6.4 mais, dans les derniers jours j'ai eu des problèmes avec des logiciels tels que les tissus, et SSH2 où j'ai pas été capable de l'installer avec les différentes erreurs ou de Tissu, il déclenche lorsque j'essaie d'importer le package.
Im maintenant à essayer d'enlever le Tissu et installer Fabric3 et son lancement erreurs de ce type:
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.
Si je ne sudo pip install fabric
puis il installe mais avec cet avertissement:
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.
Mais j'ai pensé qu'il n'était pas conseillé de pip install avec sudo?
Ce sont les erreurs que j'obtiens quand j'essaie de 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/
J'ai réussi à enlever le Tissu et installer Fabric3 avec la commande sudo, mais je préfère ne pas le faire.
Je dois ajouter que j'aie pas eu d'autres problèmes avec l'installation d'autres paquets soit à l'échelle mondiale en Python2.7 ou envs.
Vous devez vous connecter pour publier un commentaire.
La
permission denied
erreur est déclenchée parce que vous avez déjà complètement foireuse votre environnement virtuel par l'installation avecsudo
. Exécuterpour réparer les autorisations. C'est peut-être même sage de fixer les autorisations pour l'ensemble de la maison dir, si vous avez d'autres problèmes d'autorisation:
Maintenant réinstaller les paquets devrait fonctionner à nouveau:
signifie qu'avant l'installation de
ssh-python
, vous devez installer la lib première:libssh2
formule, je vois un test explicitement les contrôles qui sont nécessaires pour le fichier d'en-tête à être installé. Ainsi, le fichier doit être quelque part dans/usr/Cellar/
: exécuterbrew list libssh2 | grep
libssh2.h` pour vérifier.clang
de la compilation de phase, ce qui indique des problèmes avec Homebrew. Peut-êtrebrew doctor
va dire quelque chose d'utile.CPPFLAGS="-I/path/to/libssh2.h/parent/dir" CFLAGS="-I/path/to/libssh2.h/parent/dir" pip install ssh2-python
, cependant, une bonne solution serait de fixation de la valeur par défaut chemins à inclure dans votre env.Vous pouvez faire du pip pour installer le package dans le virtualenv emplacement de la bibliothèque: