Ce soir, j'essaie de faire installer le paquet appelé "requêtes" et j'ai commencé à tâtonner avec le terminal et je n'ai pas beaucoup d'intuition en ce qui concerne ce genre de chose.
L'ordinateur est un Mac mini, OSX version 10.9.4
Dans/Library/Python, j'ai 4 dossiers: 2.3 2.5 2.6 et 2.7.
Dans/Applications, j'ai "Python 2.7" et "Python 3.4"
Je peux ouvrir IDLE et taper 8 + 8 et j'obtiens 16 très bien.
Voici l'erreur que je reçois dans le terminal:
Host-210-117:~ Mario$ python
ImportError: No module named site
Host-210-117:~ Mario$ pip
ImportError: No module named site
Mon objectif est d'exécuter cette commande dans le terminal:
pip install requests
Je crois que pip est déjà installé. Je lance le fichier "get-pip.py" dans IDLE et voici ce qu'il dit:
Requirement already up-to-date: pip in /Library/Python/2.7/site-packages/pip-1.5.6-py2.7.Egg Cleaning up...
Cela peut avoir quelque chose à voir avec les chemins? J'apprécierais quelques conseils/astuces/conseils, merci!
Oh et juste un peu plus d'informations qui pourraient aider à résoudre cette question. Voici les premières lignes du programme que j'exécute:
import base64
import hmac
import json
import requests
import time
import urllib
import os
Ce qui me donne cette erreur dans IDLE (donc je suppose qu'il importe ces premiers paquets sans problème?):
>>>
Traceback (most recent call last):
File "/Users/Mario/Desktop/pyak/pyak.py", line 4, in <module>
import requests
ImportError: No module named requests
>>>
***** Liste des chemins système:
sys.path ['/ Users/Mario/Desktop/pyak', '/ Users/Mario/Documents', '/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.Egg', ' /Library/Frameworks/Python.framework/Versions/2.7/lib/python27.Zip ',' /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7 ',' /Library/Frameworks/Python.framework /Versions/2.7/lib/python2.7/plat-darwin ',' /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac ',' /Library/Frameworks/Python.framework /Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages ',' /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk ','/Library/Frameworks /Python.framework/Versions/2.7/lib/python2.7/lib-old ',' /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload ','/Library/Frameworks /Python.framework/Versions/2.7/lib/python2.7/site-packages ',' /Library/Python/2.7/site-packages ']
*** une autre mise à jour:
Host-210-117:~ Mario$ which python
/Library/Frameworks/Python.framework/Versions/2.7/bin/python
*** un peu plus d'informations (est-ce censé se produire?)
Host-210-117:~ Mario$ which pip
/usr/local/bin/pip
Host-210-117:~ Mario$ pip
ImportError: No module named site
*** Après avoir changé .bashrc
.bashrc: voici ce que contient le fichier
export PATH = "$ PATH: $ HOME/.rvm/bin" # Ajouter RVM à PATH pour les scripts
alias python =/Library/Python/2.7/python
voici la sortie de l'exécution:
pip install requests
Host-210-117: ~ Mario $ pip demandes d'installation
Demandes de téléchargement/déballage
Téléchargement des requêtes-2.4.1-py2.py3-none-any.whl (458kB): 458kB téléchargés
Installation des packages collectés: demandes
Nettoyer...
Exception:
Traceback (dernier appel le plus récent):
Fichier "/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.Egg/pip/basecommand.py", ligne 122, dans l'état principal = self.run (options, args)
Fichier "/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.Egg/pip/commands/install.py", ligne 283, dans l'exécution require_set.install (install_options, global_options, root = options.root_path)
Fichier "/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.Egg/pip/req.py", ligne 1435, dans install requirements.install (install_options, global_options, * args, ** kwargs)
Fichier "/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.Egg/pip/req.py", ligne 671, dans install self.move_wheel_files (self.source_dir, root = root) Fichier "/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.Egg/pip/req.py", ligne 901, dans move_wheel_files pycompile = self.pycompile,
Fichier "/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.Egg/pip/wheel.py", ligne 215, dans le clobber move_wheel_files (source, lib_dir, True)
Fichier "/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.Egg/pip/wheel.py", ligne 205, dans clobber os.makedirs (destdir)
Fichier "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.py", ligne 157, dans makedirs mkdir (nom, mode)
OSError: [Errno 13] Autorisation refusée: '/Library/Python/2.7/site-packages/requests'
Stockage du journal de débogage en cas d'échec dans /Users/Mario/Library/Logs/pip.log
D'après ce que je peux vous dire, vous avez trois versions de Python sur votre système.
/Library/Frameworks/Python.framework/Versions/2.7/
/Library/Python/2.7/site-packages
pip est installé contre la version Python 2.7 que vous avez téléchargée (celle que vous voyez dans votre dossier Applications), malheureusement le Python par défaut pour votre Shell est celui qui est fourni avec OSX, et il n'y a pas de pip installé là-bas.
IDLE est également fourni avec le Python que vous avez téléchargé, c'est pourquoi il continue de vous dire que pip est installé, mais il ne fonctionne pas à partir du shell.
Puisque vous utilisez probablement le Python téléchargé depuis python.org comme votre "primaire" Python (après tout, c'est celui avec IDLE que vous utilisez) , vous devez définir votre environnement Shell pour qu'il pointe vers ceci Python par défaut.
La façon la plus simple de le faire est d'ajouter une variable dans .bashrc
qui crée un alias python
et le pointe vers le bon binaire. Pour ce faire, ajoutez cette ligne à /Users/yourusername/.bashrc
- fichiers avec .
sont masqués par défaut, vous devrez donc écrire le nom complet du fichier dans la ligne de commande pour l'ouvrir. Ajoutez la ligne suivante:
alias python=/Library/Python/2.7/python
Enregistrez le fichier, puis fermez toutes les fenêtres du terminal et rouvrez-le. Tapez maintenant pip
et cela devrait fonctionner correctement, puis vous pourrez procéder à l'installation des requêtes.
Pour référence future, essayez de vous en tenir à une version de Python. Personnellement, j'ignore la version fournie et j'utilise celle de brew
, mais vous pouvez vous en tenir à Python téléchargé depuis python.org.
J'ai corrigé le mien avec:
brew reinstall python
Il a réparé tous mes chemins brisés. Je pense que je l'ai cassé avec un paquet de brew cassé qui avait une mauvaise dépendance de version python ou quelque chose comme ça.
site.py est un module standard qui est exécuté par python par défaut. Il permet de modifier sys.path et d'exécuter du code avant que votre code ne commence à s'exécuter. Il devrait vivre dans la bibliothèque standard et peut difficilement être en quelque sorte absent. Cependant, vous pouvez désactiver l’importation automatique du module en passant le commutateur -S à python.
Quoi qu'il en soit, vous devriez en quelque sorte vérifier pourquoi le module ne peut pas être importé. Essayez d'examiner la liste sys.path.
Vous essayez d'installer le package dans '/Library/Python/2.7/site-packages/requests' mais cela nécessite des autorisations root pour ce faire. Cela devrait faire l'affaire:
$ Sudo pip install requests
J'ai rencontré la même question et les informations d'erreur sont les suivantes:
ModuleNotFoundError: No module named 'xxx'
et finalement résolu par
brew install python3
brew link python3
Sudo python3 -m pip install xxx
// or `Sudo python3 -m pip install -r requirements.txt`