L'importation de demandes module ne fonctionne pas
J'ai les demandes module installé sur mon système.
pip install requests
Maintenant, je suis en train de demandes d'importation dans le rpel
import requests
Il échoue avec l'erreur suivante
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named requests
- Une version de Python?
- Exécuter
pip list
. Fait-il dans cette liste? - Je vais vous donner 3:1 cote que (a) vous êtes sur Mac, (b) vous avez installé un tiers de Python 2.7, et sont à l'aide de son
pip
d'installer des modules, mais Apple est pré-installé Python 2.7, ce qui bien sûr ne peuvent pas voir les modules installés pour un de complètement différent de la copie de 2.7. Si (un) est vrai et vous n'êtes pas sûr (b), ce qui newhich python
etwhich pip
dire? Et, siwhich pip
est/usr/local/bin/pip
, est-il aussi un/usr/local/bin/python
? - abarnert sur place. J'ai exactement la situation que vous êtes en train de parler. Je pense que j'ai probablement utilisé en infusion pour installer python et a obtenu dans cette situation.
- Andy il fait apparaître dans la liste pip
- Ashwini ma version de python est 2.7.5
Vous devez vous connecter pour publier un commentaire.
La raison la plus commune est que vous avez deux versions de Python 2.x, et la
pip
qui vient en premier dans votrePATH
ne pas aller avec lepython
qui vient en premier dans votrePATH
.Il y a deux façons qui peuvent se produire.
Tout d'abord, vous pouvez avoir, par exemple,
/usr/local/bin
avant/usr/bin
sur votrePATH
, mais votre/usr/local
copie de Python n'a paspip
. Donc, lorsque vous exécutezpip install requests
, c'est/usr/bin/pip
, qui s'installe dans/usr/lib/python2.7/site-packages
. Mais lorsque vous exécutezpython
, c'est/usr/local/bin/python
, qui regarde dans/usr/local/lib/python2.7/site-packages
.Deuxièmement, même si vos deux Python 2.x sont dans des endroits différents, ils peuvent vouloir installer
pip
(et d'autres scripts et exécutables) à la même place. En particulier,/usr/bin
est habituellement réservé pour les trucs qui vient avec le système d'exploitation ou à son gestionnaire de paquets, donc si vous utilisez/usr/bin/python ez_setup.py
ou/usr/bin/easy_install pip
ou de nombreuses autres façons d'installerpip
, il peut finir dans/usr/local/bin
. Auquel cas, il remplace toute précédente/usr/local/bin/pip
qui allait avec votre/usr/local/bin/python
. En tout cas, le résultat est fondamentalement la même:pip
signifie maintenant/usr/local/bin/pip
, mais il va encore avec votre/usr
Python, pas votre/usr/local
Python, et s'installe dans/usr/lib/python2.7/site-packages
, qui/usr/local/bin/python
ne pouvez pas voir.Si vos deux versions sont, par exemple, 2.7 et 3.4, il n'y a pas de problème; par PEP 394, soit le 3.x versions de tout avoir pour être exécuté avec
python3
etpip3
et ainsi de suite, ou les 2.x les versions doivent être exécutés avecpython2
etpip2
et ainsi de suite.Si vos deux versions sont, par exemple, 2.6 et 2.7, il y a un problème, mais vous pouvez facilement le contourner, parce que vous devez toujours avoir
pip2.6
etpython2.6
vspip2.7
etpython2.7
. Vous peut confondez-vous avecpython
etpip
, mais vous n'avez pas à.Si vos deux versions sont à la fois 2.7, cependant, il n'y a aucun moyen de lever l'ambiguïté (sauf en utilisant complète des chemins absolus tout le temps, personne ne veut le faire).
Alors, pourquoi serait-on jamais installer deux copies de Python 2, sans savoir ce qu'ils font?
La raison la plus commune est qu'ils sont sur un Mac, qui est livré avec Python 2.7, mais ils ont lu un post de blog qui leur a dit d'installer un autre Python et n'a pas expliqué comment savoir ce qu'ils font. Apple est pré-installé Python est dans /usr/bin, mais installe les scripts et les fichiers binaires à
/usr/local/bin
. Le plus populaire alternative versions de Python sont la python.org installer et Homebrew, qui installer à/usr/local/bin
par défaut. Le fait que les utilisateurs de Mac ont tendance à être moins Unix-savvy que Linux ou FreeBSD utilisateurs n'a probablement pas aidé, mais même sans ça, c'est un moyen idéal de se retrouver avec des milliers de personnes qui ont unpip
et unpython
qui ne correspond pas, et aucune idée de pourquoi.Il y avait de bonnes raisons pour presque tous les Mac Python utilisateurs à l'installation d'un deuxième Python. Jusqu'à OS X 10.6, Apple est pré-installé les versions de Python tendance à être mal mis à jour, et parfois rompu. Si Apple vous donne 2.4, il est logique d'installer 2.6. Et cela n'est pas un problème, parce que
python2.4
etpython2.6
sont faciles à lever l'ambiguïté. Mais Apple a été l'installation d'un travail de 2,7 pour les années maintenant. Il y a parfois de bonnes raisons pourquoi vous avez besoin d'un autre (vous avez besoin d'une correction de bug dans 2.7.7 mais Apple vous a donné 2.7.5, vous avez besoin d'un 32-bits, vous avez besoin d'un extra-piles version comme Enthought, vous avez besoin pour construirepy2app
bundles hors de lui, ...), mais ces raisons ne s'applique pas à la plupart des gens plus.En fait, beaucoup de gens sur StackOverflow semblent avoir trois versions de Python 2.7. Je ne sais pas pourquoi c'est si commun, mais ils vont utiliser Homebrew installer Python 2.7, et ensuite utiliser un programme d'installation à partir de Python.org ou Enthought, et maintenant ils en ont eu trois versions de Python 2.7 tous les combats sur la propriété de /usr/local/bin.
Alors, comment pouvez-vous résoudre ce problème?
pip3
etpython3
(etipython3
et ainsi de suite), et les chemins d'accès ne sont pas plus un problème./usr/local/bin
avant/usr/bin
), et elle devrait vous permettre depip install foo
sanssudo
, tandis que Apple ne sera pas, ce qui rend difficile de accidentellement vis et installer le mauvais.J'ai aussi vu au moins un utilisateur de Windows qui avaient à la fois
C:\Python27
etD:\Python27
, à la fois sur lePATH
, avec laC:
une première, maispip
installé uniquement pourD:
. Cela semble être beaucoup moins commun que le Mac confusion (probablement parce que Windows n'est pas fourni avec Python, et il n'y a pas des gestionnaires de paquets, donc la seule façon que vous allez obtenir n'importe quelle Python est en cours d'exécution d'un programme d'installation). Et la solution est encore plus simple ici: Windows n'a pas besoin de Python, de sorte que vous pouvez supprimer celui que vous voulez.Enfin, sur la non-Mac les systèmes *nix, surtout RHEL/CentOS Linux, vous pouvez avoir un Python 2.6 ou 2.4, requise par le système d'exploitation, ainsi qu'un Python 2.7 que vous avez installés parce que vous en avez besoin, ou de 2,7 requise par le système d'exploitation et un 2.5 installé en tant que dépendance de certains "compatibilité" package ou similaire. De toute façon, vous pouvez facilement installer accidentellement le
pip
pour celui que vous n'en utilisent pas (surtout si vous l'installer avec lapip
bootstrap au lieu de votre gestionnaire de paquets).La solution est assez simple: le désinstaller
pip
, et l'utilisationyum
ouapt
ou que ce soit pour installer lepython-pip
qui va avec Python 2.7 vous souhaitez utiliser. Et prenez l'habitude d'utiliserpython2.7
etpip2.7
—ou tout simplement ajouter des alias à votre profil afin quepython
oupy
ou ce que vous préférez fonctionnepython2.7
.sudo ls Library/Python
donne seulement 2,7 et il n'y a pas d'autre version dans\usr\local\bin
. Mon chemin donne-bash: /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/TeX/texbin:
,which pip
donne\usr\local\bin\pip
encore, je vais avoir le même problème.Pour les devs avec le même problème: Installer python3 version directement depuis le fichier de pack sur leur site web.
DE NE PAS SUPPRIMER OU MODIFIER QUOI QUE CE SOIT SUR
usr/local/bin
!rm -rf /Library/Frameworks/Python.framework/Versions/2.7
rm -rf "/Applications/Python 2.7"
Installer python3 directement à partir de package sur le site officiel.
Rouvrir
VSCode
, (si vous ne l'utilisez pas, vous devez ré-installer les modules dans "Pas Trouvé" l'état, exécutez la commande:pip3 install requests
et d'autres "non trouvé" les modules de commande
pip3 install xxxxxx
Ajouter
"python.pythonPath": "/usr/local/bin/python3"
à votresettings.json
fichier.Êtes-vous à l'aide de
Linux
et à la fois python2 et python3 installé?Si oui, vous l'installation par:
serait d'installer le module de python2
Donc, si vous exécutez l'importation en python3, il peut provoquer le problème.
Essayer d'appeler:
pour installer le module dans python3 environnement.
pip
installe à Python 2 (la plupart d'entre eux à l'heure actuelle),python
également pistes Python 2, de sorte qu'il ne serait pas à avoir ce problème.