Je travaille sur mac OS X Yosemite, version 10.10.3.
J'ai installé python2.7 et pip en utilisant macport comme indiqué dans http://johnlaudun.org/20150512-installing-and-setting-pip-with-macports/
Je peux installer avec succès des packages et les importer dans mon environnement python et mes scripts python. Cependant, aucun exécutable associé à un package qui peut être appelé à partir de la ligne de commande dans le terminal n'est trouvé.
Est-ce que quelqu'un sait ce qui pourrait être mauvais? (Plus de détails ci-dessous)
Par exemple lors de l'installation d'un package appelé "rosdep" comme indiqué dans http://wiki.ros.org/jade/Installation/Source
Je peux exécuter: sudo pip install -U rosdep
qui s'installe sans erreurs et les fichiers correspondants se trouvent dans/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
Cependant si j'essaye d'exécuter:, sudo rosdep init
cela donne une erreur:"sudo: rosdep: command not found"
Ce n'est pas une erreur spécifique au package. J'obtiens ceci pour n'importe quel paquet installé en utilisant 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 se trouvent pas sur la ligne de commande, même si les packages fonctionnent parfaitement depuis python.
Réponses:
vérifiez votre $ PATH
tox
a un mode ligne de commande:où est-ce?
(modifier: les
2.7
trucs n'ont pas beaucoup d'importance ici, les sous de tout3.x
et pip se comportent à peu près de la même manière)et que contient mon $ PATH?
Remarquez le /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin ? C'est ce qui permet de trouver mes trucs installés par pip
Maintenant, pour voir où les choses viennent de Python, essayez de faire ceci (remplacez
rosdep
-letox
).qui imprime:
Maintenant, cd dans le répertoire juste au-dessus
lib
dans ce qui précède. Voyez-vous un répertoire bin ? Voyez-vousrosdep
dans ce bac? Si c'est le cas, essayez d'ajouter lebin
à votre $ PATH.production:
la source
rosdep
est cohérent avec votre problème. mon point est que vous devez trouver où lerosdep
est installé et à quoi ressemble $ PATH.which
(s'il ne se trouve pas encore dans votre chemin), vous pouvez également essayer de trouver le binaire en utilisantmlocate
Linux oumdfind
MacOS.Sur macOS avec l'installation python par défaut, vous devez ajouter
/Users/<you>/Library/Python/2.7/bin/
à votre $ PATH.Ajoutez ceci à votre .bash_profile:
C'est là que pip installe les exécutables.
Astuce: pour une version python autre que celle par défaut,
which python
recherchez l'emplacement de votre installation python et remplacez cette partie dans le chemin ci-dessus. (Merci pour l'indice Sanket_Diwale)la source
which python3
m'a finalement conduit (via un lien) à/Library/Frameworks/Python.framework/Versions/3.6/bin/
.Si vous installez en utilisant
--user
(par exemplepip3.6 install --user tmuxp
), il est possible d'obtenir le répertoire d'installation utilisateur spécifique à la plate-forme à partir de Python lui-même en utilisant lesite
module . Par exemple, sur macOS:En ajoutant
/bin
à cela, nous avons maintenant le chemin où les exécutables du package seront installés. Nous pouvons remplir dynamiquement le PATH dans le fichier rc de votre shell en fonction de la sortie; J'utilise bash, mais avec un peu de chance, c'est portable:J'utilise les versions précises de Python pour réduire le risque que les exécutables «disparaissent» lorsque Python met à jour une version mineure, par exemple de la version 3.5 à la version 3.6. Ils disparaîtront car, comme on peut le voir ci-dessus, le chemin d'installation de l'utilisateur peut inclure la version Python. Ainsi, alors que
python3
pourrait pointer vers 3,5 ou 3,6,python3.6
il pointera toujours vers 3,6. Cela doit être gardé à l'esprit lors de l'installation de paquets supplémentaires, par exemple lors de l'utilisation depip3.6
overpip3
.Si l'idée de la disparition des packages ne vous dérange pas, vous pouvez utiliser
python2
et à lapython3
place:la source
Je sais que la question pose sur macOS, mais voici une solution pour les utilisateurs de Linux qui arrivent ici via Google.
J'avais le problème décrit dans cette question, après avoir installé le package pdfx via pip.
Quand je l'ai couru cependant, rien ...
Encore:
Le problème sous Linux est que les
pip install ...
scripts sont introduits~/.local/bin
et ce n'est pas sur le Debian / Ubuntu par défaut$PATH
.Voici un problème GitHub plus détaillé: https://github.com/pypa/pip/issues/3813
Pour réparer, ajoutez simplement
~/.local/bin
à votre$PATH
, par exemple en ajoutant la ligne suivante à votre.bashrc
fichier:Après cela, redémarrez votre shell et les choses devraient fonctionner comme prévu.
la source
source ~/.bashrc
recharger la.bashrc
configurationSolution
Basé sur d'autres réponses, pour
linux
etmac
vous pouvez exécuter ce qui suit:au lieu de
python3
vous pouvez utiliser un autre lien vers la version python:python
,python2.7
,python3.6
,python3.9
, etc.Explication
Afin de savoir où les packages utilisateur sont installés dans le système d'exploitation actuel (win, mac, linux), nous exécutons:
Nous savons que les scripts vont dans le
bin/
dossier où les packages sont installés.Nous concaténons donc les chemins:
Ensuite, nous exportons cela vers une variable d'environnement.
Enfin, afin d'éviter de répéter la commande d'exportation, nous l'ajoutons à notre
.bashrc
fichier et noussource
exécutons les nouvelles modifications, en nous donnant la solution suggérée mentionnée au début.la source
Sous Windows, vous devez ajouter le chemin
%USERPROFILE%\AppData\Roaming\Python\Scripts
à votre chemin.la source
Je suis tombé sur cette question parce que j'ai créé, construit et publié avec succès un package PyPI, mais je n'ai pas pu l'exécuter après l'installation. La
$PATH
variable a été correctement définie.Dans mon cas, le problème était que je n'avais pas défini le
entry_point
dans lesetup.py
fichier:la source
En plus d'ajouter le
bin
répertoire de python à la$PATH
variable, j'ai également dû changer le propriétaire de ce répertoire, pour le faire fonctionner. Je ne sais pas pourquoi je n'étais pas déjà le propriétaire.la source
Lorsque vous installez Python ou Python3 à l'aide du programme d'installation MacOS (téléchargé à partir du site Web Python), il ajoute un
export
er à votre~/.profile
script. Tout ce que vous avez à faire est justesource
cela. Le redémarrage de tous les terminaux devrait également faire l'affaire.AVERTISSEMENT - Je pense qu'il est préférable d'utiliser simplement pip3 avec Python3 - pour des avantages futurs.
Si vous avez déjà installé Python3, les étapes suivantes fonctionnent pour moi sur macOS Mojave:
Installez ansible d'abord en utilisant
sudo
-sudo -H pip3 install ansible
vous créez un lien symbolique vers le
bin
chemin de Pythonsudo ln -s /Library/Frameworks/Python.framework/Versions/Current/bin /Library/Frameworks/Python.framework/current_python_bin
et agrafez-le pour
.profile
export PATH=$PATH:/Library/Frameworks/Python.framework/current_python_bin
exécutez
source ~/.profile
et redémarrez tous les shells de terminaux.Type
ansible --version
la source