web-dev-qa-db-fra.com

Aucun module nommé pkg_resources

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?

375
igniteflow

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.

566
cwc
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 

103
Marek

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.

44
Ali Akdurak

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
33
pram

Dans CentOS 6, l’installation du paquet python-setuptools a corrigé le problème.

yum install python-setuptools
15
Paul

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é:

https://Gist.github.com/ajtrichards/42e73562a89edb1039f3

14
ajtrichards

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
7
Tarion

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!

6
ptim

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

5
mrgnw

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.

3
jdg

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
2
shadyhill

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!

2

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/
2
kat

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.

2
arno_v

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
2
Gabriel

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.

1
Danilo Bargen

Si vous utilisez Python 3, vous devez utiliser pip3 au lieu de pip. La commande ressemble à $ pip3 install requirements.txt

0
user3266968

J'ai rencontré cette erreur dans mon environnement Google App Engine. Et pip install -t lib setuptools a résolu le problème.

0
Murat Çorlu

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.

0
B Kasza

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

0
Lucas

Sous Opensuse 42.1, le problème suivant a été résolu:

zypper in python-Pygments
0
David Hamner

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.

0
shellbye

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
0
Steve D.

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.

0
Tukadiya Ramesh

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).

0
metaphy

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.

0
KitsuneYMG

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.

0
weibin Wang

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/ )

0
user13107

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.

0
David Jablonski

Pour moi, une bonne solution consistait à utiliser l'option --no-download de virtualenv (VIRTUALENV_NO_DOWNLOAD=1 tox pour tox.)

0
Baczek

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.

0
Scott Yang