pip installe les paquets avec succès, mais les exécutables ne trouve pas de ligne de commande
Je travaille sur mac OS X Yosemite, la version 10.10.3.
J'ai installé python2.7 et pip à l'aide de macport comme le fait le
http://johnlaudun.org/20150512-installing-and-setting-pip-with-macports/
Je peux réussir l'installation de paquets et de les importer à l'intérieur de mon environnement python et des scripts python. Toutefois, le fichier exécutable associé à un paquet qui peut être appelée à partir de la ligne de commande dans le terminal ne sont pas trouvés.
Personne ne sait ce qui ne va pas? (Plus de détails ci-dessous)
Par exemple lors de l'installation d'un paquet appelé "rosdep" comme indiqué dans http://wiki.ros.org/jade/Installation/Source
Je peux courir: sudo pip install -U rosdep
qui s'installe sans erreurs et les fichiers correspondants sont situés dans /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
Cependant, si j'essaie de le lancer : sudo rosdep init
,
il donne une erreur : "sudo: rosdep: command not found"
Ce n'est pas un paquet d'erreur spécifique. Je reçois ce pour un paquet installé à l'aide de pip sur mon ordinateur. J'ai même essayé d'ajouter
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
à mon $PATH
.
Mais les exécutables ne sont pas sur la ligne de commande, même si les paquets de travail parfaitement dans python.
- tout virtualenv impliqués?
- non, pas de virtualenv est impliqué.
- lorsque vous sudo, vous passez à l' $CHEMIN d'accès de l'utilisateur root, il suffit de faire certain que son CHEMIN d'accès est mis à jour, pas votre CHEMIN
Vous devez vous connecter pour publier un commentaire.
vérifier votre $PATH
tox
a un mode ligne de commande:où est-il?
et ce qui est dans mon $PATH?
Avis de la /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin? C'est ce que permet la recherche de mon pip-installé des trucs
Maintenant, pour voir où en sont les choses à partir de Python, essayez de faire cela (à remplacer par
rosdep
pourtox
).qui imprime:
Maintenant, cd dans le répertoire juste au-dessus de
lib
ci-dessus. Voyez-vous un bin répertoire? Voyez-vousrosdep
dans ce bac? Si oui, essayez d'ajouter labin
à votre $PATH.de sortie:
rosdep
est compatible avec votre question. mon point est que vous devez trouver l'endroit où lerosdep
est installé et que $PATH ressemble.virtualenv
qui peut également jeter quelques grains de sable dans les œuvres.npm install
tend à ignorer leur équivalent de ces python binaire utilitaires, sauf si vous ajoutez le-g
indicateur global.tox.__file__
dans Python. Pas un dev Python, mais cela m'a fait sur la bonne voie. Merci 🙂Sur macOS avec la valeur par défaut d'installation de python, vous devez ajouter
/Users/<you>/Library/Python/2.7/bin/
à votre $PATH.Ajouter à votre .bash_profile:
C'est là que pip installe les fichiers exécutables.
Astuce: Pour les non-par défaut de la version de python
which python
pour trouver l'emplacement de votre installation de python et de remplacer la partie dans le chemin d'accès ci-dessus. (Merci pour l'astuce Sanket_Diwale)which python3
m'a conduit finalement (par un lien) à/Library/Frameworks/Python.framework/Versions/3.6/bin/
.Si vous effectuez l'installation à l'aide de
--user
(par exemplepip3.6 install --user tmuxp
), il est possible d'obtenir la plate-forme de l'utilisateur du répertoire d'installation de Python en utilisant la fonctionsite
module. Par exemple, sur macOS:En ajoutant
/bin
pour cela, nous avons maintenant le chemin d'accès où les exécutables des packages sera installé. Nous pouvons remplir dynamiquement le CHEMIN de votre interpréteur de commande rc fichier basé sur la sortie; je suis en utilisant bash, mais avec un peu de chance ce est portable:Je les versions de Python afin de réduire le risque de les exécutables simplement "disparaître" quand Python mises à niveau d'une version mineure, par exemple, à partir de 3.5 3.6. Ils vont disparaître parce que, comme on le voit ci-dessus, l'utilisateur chemin d'installation peuvent inclure la version de Python. Ainsi, alors que
python3
pourrait 3.5 ou 3.6,python3.6
sera toujours le point 3.6. Ceci doit être gardé à l'esprit lors de l'installation d'autres paquets, par exemple l'utilisationpip3.6
surpip3
.Si vous n'avez pas l'esprit l'idée de paquets en train de disparaître, vous pouvez utiliser
python2
etpython3
à la place:Je suis tombé sur cette question parce que j'ai créé, construit avec succès et publié une PyPI Paquet, mais n'a pas pu l'exécuter après l'installation. Le
$PATH
variable a été correctement définie.Dans mon cas, le problème était que je n'avais pas mis le
entry_point
dans lesetup.py
fichier:Sur Windows, vous devez ajouter le chemin d'accès
%USERPROFILE%\AppData\Roaming\Python\Scripts
à votre chemin d'accès.