Je déploie une application Django sur un serveur de développement et je rencontre cette erreur lorsque j'exécute le programme pip install requirements.txt:
Traceback (most recent call last):
File "/var/www/mydir/virtualenvs/dev/bin/pip", line 5, in <module>
from pkg_resources import load_entry_point
ImportError: No module named pkg_resources
pkg_resources semble être distribué avec setuptools. Initialement, je pensais que cela ne serait peut-être pas installé sur python dans virtualenv. J'ai donc installé setuptools (2.6, même version que Python) sur les packages de site Python dans virtualenv à l'aide de la commande suivante.
sh setuptools-0.6c11-py2.6.Egg --install-dir /var/www/mydir/virtualenvs/dev/lib/python2.6/site-packages
EDIT Cela ne se produit que dans le virtualenv. Si j'ouvre une console en dehors de virtualenv alors pkg_resources est présent
mais je reçois toujours la même erreur. Des idées pour savoir pourquoi pkg_resources n'est pas sur le chemin?
Mise à jour de juillet 2018
La plupart des gens devraient maintenant utiliser pip install setuptools
(éventuellement avec Sudo
).
Certains auront peut-être besoin de (ré) installer le paquet python-setuptools
via leur gestionnaire de paquets (apt-get install
, yum install
, etc.).
Ce problème peut dépendre fortement de votre système d'exploitation et de votre environnement de développement. Voir l'héritage/autres réponses ci-dessous si ce qui précède ne fonctionne pas pour vous.
Explication
Ce message d'erreur est dû à un package Python setuptools
manquant/endommagé. Selon les commentaires de Matt M. et Le problème de bootstrap mentionné ci-après dans le numéro 581 de setuptools n'est plus la méthode d'installation recommandée.
Les instructions du script d’amorçage resteront en dessous, au cas où elles seraient toujours utiles.
Legacy Answer
J'ai rencontré la même ImportError
aujourd'hui en essayant d'utiliser pip. D'une manière ou d'une autre, le package setuptools
avait été supprimé de mon environnement Python.
Pour résoudre le problème, exécutez le script d'installation pour setuptools
:
wget https://bootstrap.pypa.io/ez_setup.py -O - | python
(ou si vous n'avez pas installé wget
(par exemple, OS X), essayez
curl https://bootstrap.pypa.io/ez_setup.py | python
éventuellement avec Sudo
ajouté au préalable.)
Si vous avez une version de distribute
, ou une setuptools
inférieure à 0.6, vous devrez d'abord la désinstaller. *
Voir Instructions d'installation pour plus de détails.
* Si vous avez déjà une distribute
fonctionnelle, il est plus facile de la mettre à niveau vers le "wrapper de compatibilité" qui vous permet de passer à setuptools
. Mais si les choses sont déjà cassées, n'essayez pas cela.
Sudo apt-get install --reinstall python-pkg-resources
corrigé pour moi dans Debian. On dirait que désinstaller des paquets .deb (twisted set dans mon cas) a cassé le chemin utilisé par python pour trouver des paquets
J'ai vu cette erreur en essayant d'installer rhodecode sur un virtualenv sur Ubuntu 13.10. Pour moi, la solution était de courir
pip install --upgrade setuptools
pip install --upgrade distribute
avant de lancer easy_install rhodecode.
C'est aussi arrivé à moi. Je pense que le problème se produira si le fichier Requirements.txt contient une entrée "Distribuer" pendant que virtualenv utilise setuptools. Pip va essayer de mettre à jour setuptools pour faire de la place pour la distribution, mais malheureusement, il échouera à moitié.
La solution facile est de supprimer votre virtualenv actuel, puis de créer un nouveau virtualenv avec l’argument --distribute.
Un exemple si vous utilisez virtualenvwrapper:
$ deactivate
$ rmvirtualenv yourenv
$ mkvirtualenv yourenv --distribute
$ workon yourenv
$ pip install -r requirements.txt
Dans CentOS 6, l’installation du paquet python-setuptools a corrigé le problème.
yum install python-setuptools
J'ai eu cette erreur plus tôt et la réponse la mieux notée m'a donné une erreur en essayant de télécharger le fichier ez_setup.py
. J'ai trouvé une autre source pour que vous puissiez exécuter la commande:
curl http://peak.telecommunity.com/dist/ez_setup.py | python
J'ai découvert que je devais aussi utiliser Sudo
pour le faire fonctionner. Vous devrez donc peut-être exécuter:
Sudo curl http://peak.telecommunity.com/dist/ez_setup.py | Sudo python
J'ai également créé un autre emplacement à partir duquel le script peut être téléchargé:
Besoin d'un peu plus de Sudo. Ensuite, utilisez easy_install pour installer pip. Travaux.
Sudo wget https://bootstrap.pypa.io/ez_setup.py -O - | Sudo python
Sudo easy_install pip
Après avoir essayé plusieurs de ces réponses, puis contacté un collègue, Ubuntu 16.04 a fonctionné de la manière suivante:
pip install --force-reinstall -U setuptools
pip install --force-reinstall -U pip
Dans mon cas, seule une ancienne version de pillow 3.1.1 posait problème (pillow 4.x fonctionnait bien), et le problème est maintenant résolu!
J'ai corrigé l'erreur avec virtualenv en procédant comme suit:
Pkg_resources.py copié à partir de
/Library/Python/2.7/site-packages/setuptools
à
/Library/Python/2.7/site-packages/
Cela peut être une solution bon marché, mais cela a fonctionné pour moi.
.
Si les outils d'installation n'existent pas, vous pouvez essayer d'installer des paquetages de site système en tapant virtualenv --system-site-packages /DESTINATION DIRECTORY
, en remplaçant la dernière partie par le répertoire dans lequel vous voulez installer. pkg_rousources.py
sera sous ce répertoire dans lib/python2.7/site-packages
Pour moi, cette erreur était due au fait que j'avais un sous-répertoire appelé "site"! Je ne sais pas s'il s'agit d'un bogue ou non, mais j'ai commencé par:
/some/dir/requirements.txt/some/dir/site/
pip install -r exigences.txt ne fonctionnerait pas, me donnant l'erreur ci-dessus!
renommer le sous-dossier de "site" en "src" a résolu le problème! Peut-être que pip cherche "site-packages"? Fou.
On dirait qu'ils se sont éloignés de bitbucket et sont maintenant sur github ( https://github.com/pypa/setuptools )
La commande à exécuter est:
wget https://bootstrap.pypa.io/ez_setup.py -O - | Sudo python
J'ai eu ce problème quand j'ai activé mon virtualenv en tant qu'utilisateur différent de celui qui l'a créé. Cela semble être un problème de permission. J'ai découvert cela lorsque j'ai essayé la réponse de @cwc et que je l'ai vu dans la sortie:
Installing easy_install script to /path/env/bin
error: /path/env/bin/easy_install: Permission denied
Revenir à l'utilisateur qui a créé virtualenv, puis exécuter la commande pip install
d'origine s'est déroulé sans problème. J'espère que cela t'aides!
Pour moi, il s'est avéré que c'était un problème d'autorisations sur site-packages
. Puisqu'il ne s'agit que de mon environnement de développement, j'ai soulevé les autorisations et tout fonctionne à nouveau:
Sudo chmod -R a+rwx /path/to/my/venv/lib/python2.7/site-packages/
J'ai eu ce problème aujourd'hui aussi. Je n'ai que le problème à l'intérieur de l'env virtuel.
La solution pour moi était de désactiver l’environnement virtuel, de supprimer puis de désinstaller virtualenv avec pip, puis de le réinstaller. Après cela, j'ai créé un nouvel env virtuel pour mon projet, puis pip a bien fonctionné tant dans l'environnement virtuel que dans l'environnement normal.
Si vous rencontrez ce problème avec une application installée via conda , la solution (comme indiqué dans ce rapport de bogue) consiste simplement à installer setup-tools avec:
conda install setuptools
Apparemment, vous manquez de setuptools. Certaines versions de virtualenv utilisent distribuer au lieu de setuptools par défaut. Utilisez l'option --setuptools
lors de la création de virtualenv ou définissez le VIRTUALENV_SETUPTOOLS=1
dans votre environnement.
Si vous utilisez Python 3, vous devez utiliser pip3 au lieu de pip. La commande ressemble à $ pip3 install requirements.txt
J'ai rencontré cette erreur dans mon environnement Google App Engine. Et pip install -t lib setuptools
a résolu le problème.
J'ai eu le même problème lorsque j'ai utilisé easy-install pour installer pip for python 2.7.14. Pour moi, la solution était (peut-être pas la meilleure, mais a fonctionné pour moi, et c'est probablement la plus simple) que le dossier qui contenait le easy-install.py
contenait également un dossier pkg_resources
et que j'ai copié-collé ce dossier dans le même dossier où Mon script pip-script.py
était (python27\Scripts
) . Depuis lors, je l’ai trouvé également dans le dossier python27\Lib\site-packages\pip-9.0.1-py2.7.Egg\pip\_vendor
; il serait peut-être préférable de modifier le fichier pip-script.py
pour l’importer.
yum -y install python-setuptools
je configure le Ceph il y a un problème exécuter la commande "$ ceph-deploy new node1"
, .__ et j'exécute la commande "$ yum -y install python-setuptools"
, .__, alors le problème est parti.Merci
Sous Opensuse 42.1, le problème suivant a été résolu:
zypper in python-Pygments
J'utilise CentOS 6.7, et mon python venait juste de passer de 2.6.6 à 2.7.11, après avoir essayé plusieurs réponses différentes, enfin le suivant fait le travail:
Sudo yum install python-devel
J'espère aider quelqu'un dans la même situation.
Dans mon cas, j'avais initialement 2 versions de python installées et plus tard, j'avais supprimé la plus ancienne. Donc, tout en créant l'environnement virtuel
virtualenv venv
faisait référence au python désinstallé
Ce qui a fonctionné pour moi
python3 -m virtualenv venv
La même chose est vraie lorsque vous essayez d'utiliser pip.
J'ai rencontré ce problème après la mise à jour de ma version Ubuntu. Il semble avoir traversé et supprimé des outils de configuration dans tous mes environnements virtuels.
Pour remédier à cela, j'ai réinstallé l'environnement virtuel dans le répertoire cible. Cela a permis de nettoyer les outils de configuration manquants et de remettre les choses en marche.
par exemple.:
~/RepoDir/TestProject$ virtualenv TestEnvironmentDir
ImportError: Aucun module nommé pkg_resources: la solution consiste à réinstaller python pip à l'aide de la commande suivante.
Étape: 1 Connectez-vous à l'utilisateur root.
Sudo su root
Étape: 2 Désinstallez le paquet python-pip s'il existe.
apt-get purge -y python-pip
Étape: 3 Télécharger des fichiers à l'aide de la commande wget (téléchargement de fichier dans pwd
)
wget https://bootstrap.pypa.io/get-pip.py
Étape: 4 Exécuter un fichier python.
python ./get-pip.py
Étape: 5 Finaly exicute la commande d'installation.
apt-get install python-pip
Remarque: L'utilisateur doit être root.
Sur Windows, j'ai installé le pip téléchargé de www.lfd.uci.edu/~gohlke/pythonlibs/ puis j'ai rencontré ce problème.
J'aurais donc dû installer d'abord setuptools (easy_install).
Je suis tombé sur cette réponse lorsque j'essayais de suivre ce guide pour OSX . Ce qui a fonctionné pour moi, c’est qu'après avoir exécuté python get-pip
, j’ai dû AUSSI easy_install pip
Cela a résolu le problème de ne pas pouvoir exécuter pip du tout. J'ai ai eu un tas de vieux trucs MacPort installés. Cela peut avoir été en conflit.
la solution simple est que vous pouvez utiliser conda pour mettre à niveau setuptools ou tout l’environnement. (Spécialement pour l'utilisateur Windows.)
conda upgrade -c anaconda setuptools
si setuptools est supprimé, vous devez réinstaller setuptools.
conda install -c anaconda setuptools
si toutes ces méthodes ne fonctionnent pas, vous pouvez mettre à niveau conda environement. Mais je ne vous recommande pas de réinstaller et de désinstaller certains paquets, car cela aggraverait la situation.
Aucune des réponses postées n'a fonctionné pour moi, alors j'ai réinstallé pip et cela a fonctionné!
Sudo apt-get install python-setuptools python-dev build-essential
Sudo easy_install pip
pip install --upgrade setuptools
(référence: http://www.saltycrane.com/blog/2010/02/how-install-pip-ubuntu/ )
Sous Windows, avec Python 3.7, cela fonctionnait pour moi:
pip install --upgrade setuptools --user
--user
installe les packages dans votre répertoire personnel, qui ne nécessite pas de privilèges d'administrateur.
Pour moi, une bonne solution consistait à utiliser l'option --no-download
de virtualenv (VIRTUALENV_NO_DOWNLOAD=1 tox
pour tox.)
il suffit de réinstaller votre setuptools
par:
$ Sudo wget https://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz#md5=7df2a529a074f613b509fb44feefefe74e
$ tar -zxvf setuptools-0.6c11.tar.gz
$ cd setuptools-0.6c11/
$ Sudo python setup.py build
$ Sudo python setup.py install
$ Sudo pip install --upgrade setuptools
alors tout ira bien.