web-dev-qa-db-fra.com

'Pas de module nommé demandes' même si j'ai installé des demandes avec pip

J'essaie de tester si le module de demandes a été bien installé. Mais j'obtiens l'erreur suivante: 

raceback (most recent call last):
  File "/Users/macbookpro/Desktop/test.py", line 1, in <module>
    import requests
ImportError: No module named requests

en essayant d'exécuter le script de test suivant: 

import requests
print 'test'

Mais j'ai installé des requêtes avec pip et la commande pip list donne le résultat suivant: 

MBPdeMacBook2:~ macbookpro$ pip list
arrow (0.7.0)
beautifulsoup4 (4.4.1)
classifier (1.6.5)
coursera-dl (0.6.1)
Django (1.8.6)
html5lib (1.0b8)
keyring (9.0)
lxml (3.6.0)
Pillow (3.4.2)
pip (8.0.2)
pyasn1 (0.1.9)
requests (2.14.2)
setuptools (19.4)
six (1.10.0)
urllib3 (1.16)
vboxapi (1.0)
virtualenv (13.1.2)
wheel (0.26.0)

Pourquoi les demandes ne sont pas importées?

MODIFIER : 

MBPdeMacBook2:~ macbookpro$ which python
/Library/Frameworks/Python.framework/Versions/2.7/bin/python
MBPdeMacBook2:~ macbookpro$ which pip
/usr/local/bin/pip
MBPdeMacBook2:~ macbookpro$ python --version
Python 2.7.11
MBPdeMacBook2:~ macbookpro$ pip --version
pip 8.0.2 from /usr/local/lib/python2.7/site-packages (python 2.7)
6
mounaim

Je ne suis pas sûr à 100%, mais les chemins de which python et which pip peuvent indiquer que vous avez installé deux versions. La version Python étant l'ancienne version fournie avec OS X et une autre version.

Je vous conseillerais d'installer Python27 (ou même mieux Python3) de Brew.

Vous pouvez installer brew avec une seule commande , et une autre pour installer Python27/3. Lorsque cela est fait, définissez la variable PATH dans votre fichier rc Shell et vous devriez être prêt à partir.

J'ai installé Python27 (via brew) et mon (environnement de travail) signale les chemins suivants:

which python: /usr/local/bin/python
which pip: /usr/local/bin/pip

Et

python --version: 2.7.15
pip --version: pip 9.0.1 from /usr/local/lib/python2.7/site-packages (python2.7)
2
OptimusCrime

En général, vous devriez prendre l’habitude de travailler dans une virtualenv. Je trouve la documentation ici utile. 

Si vous installez toutes vos dépendances dans l'environnement virtuel, vous serez (principalement) sûr (e) de l'installation de ces dépôts. dans le même environnement que vous exécutez les travaux. 

Pour votre cas, allez dans le répertoire où votre code vit sur la ligne de commande et lancez

pip install virtualenv
virtualenv my_project
source my_project/bin/activate

Maintenant que le virtualenv est actif, vous pouvez 

pip install requests

Seul ce qui est installé dans virtualenv sera disponible. Cela gardera votre système propre. Chaque projet doit avoir son propre virtualenv, ce qui signifie que seules les dépendances nécessaires à chaque projet seront disponibles. De cette façon, vous pourriez, par exemple, installer la version 1 de certaines dépendances pour un projet et la version 2 pour un autre. Ils n'entreront pas en conflit. 

Après avoir installé toutes les dépendances, exécutez

pip freeze > requirements.txt

Pour obtenir une liste de toutes les dépendances enregistrées pour le projet. La prochaine fois que vous aurez besoin d’installer ces derniers, vous exécuterez simplement

pip install -r requirements.txt

Une fois que vous avez fini de travailler dans virtualenv, lancez

deactivate
2
Metropolis

Cela peut se produire, par exemple, si pip est réellement pip3 et python est réellement python2.7. Dans votre cas, quel pip et quel python éliminent cette possibilité, mais cela m'est juste arrivé. 

La solution était de faire pip2 au lieu de pip; si la situation a été inversée, vous pouvez utiliser pip3. 

0
jeremy_rutman