J'installe webhook
pip install webhook
### but hava error,then
yum install python-devel -y
## go on,pip doesn't workding
pip
Entrez la commande contient pip.Then
[root@location src]# pip
Traceback (most recent call last):
File "/usr/bin/pip", line 5, in <module>
from pkg_resources import load_entry_point
File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 72, in <module>
import packaging.requirements
File "/usr/lib/python2.7/site-packages/packaging/requirements.py", line 59, in <module>
MARKER_EXPR = originalTextFor(MARKER_EXPR())("marker")
TypeError: __call__() takes exactly 2 arguments (1 given)
Donc qu'est ce que je devrais faire?!
METTRE À JOUR:
S'il vous plaît voir le solution plus bas dans ce fil par Pedro Werneck au lieu de celui-ci. C'est la bonne façon de résoudre le problème.
Préface: je ne le recommande pas!
Cela semble fonctionner, mais je n'ai aucune idée de ce que pourraient être les conséquences. C'est la programmation culte du cargo à son meilleur! Je ne fais que l'ajouter ici au cas où cela pourrait aider quelqu'un dans une impasse.
J'ai apporté des modifications au fichier requirements.py
où l'erreur s'est produite. Pour @hysg, ce serait ce fichier:
/usr/lib/python2.7/site-packages/packaging/requirements.py
Sur moi sur OS X, c'est ici:
/Library/Python/2.7/site-packages/packaging/requirements.py
J'ai modifié la ligne incriminée en supprimant les parenthèses pour l'appel à MARKER_EXPR, comme illustré ci-dessous:
#MARKER_EXPR = originalTextFor(MARKER_EXPR())("marker")
MARKER_EXPR = originalTextFor(MARKER_EXPR)("marker")
Et cela a fonctionné.
Encore une fois, soyez prudent! Je ne sais pas ce que je fais et cela pourrait potentiellement causer plus de tort que de bien.
J'ai eu le même problème sur une nouvelle virtualenv et apparemment, il s'agit d'un conflit entre les exigences de version pour packaging, pip et pyparsing avec le nouveau setuptools. Ce qui a fonctionné pour moi, c’était de déterminer l’ancien.
pip install setuptools==33.1.1
Mettre à jour:
Comme une autre réponse l’a souligné, pip a déjà corrigé le bogue. Vous devez donc essayer de le mettre à niveau au lieu d’utiliser la solution ci-dessus.
python -m pip install --upgrade --force pip
c'est du travail bien :
python -m pip install --upgrade --force pip
pip install setuptools==33.1.1
C'est ce qui a fonctionné pour moi:
pip install setuptools==33.1.1
Il a abaissé la valeur de setuptools de 35.0.1 à 33.1.1 et la version 1.5.7 installée!
J'ai appliqué le correctif
pip installer setuptools == 33.1.1
et il a résolu le problème pour OSX 10.10.5 (Yosemite)
Utilisez la commande suivante pour mettre à niveau pip, qui corrige le bogue:
python -m pip install --upgrade --force pip
Cela a fonctionné pour moi (centos 7, python 2.7).
Pour plus de détails: GitHub
J'ai rencontré le même problème sur un nouveau virtualenv essayant d'installer. J'exécute python 2.7.11 et trouve les deux commandes ci-dessous qui résolvent le problème de versioning avec setuptools:
Cela oblige une mise à niveau pip, qui corrige le bogue, mais ne réinstalle pas les outils de configuration, donc je fonctionnais toujours sur la version 35.0.1 de setuptools
python -m pip install --upgrade --force pip
Cela définit setuptools sur une version plus ancienne.
pip install setuptools==33.1.1
Après cela, j'ai installé avec succès mes exigences.
En fait, le problème est que OS/system, qui signifie root, et non Sudo, est le propriétaire du paquet pip2. Mais après avoir exécuté cette commande:
Sudo apt-get remove python-pip
Ça a marché comme sur des roulettes.
Notant, bien sur que j’ai une distribution debian.
Et puis j'ai utilisé ce que Pedro a suggéré:
Sudo pip install setuptools==33.1.1
Aucune des autres réponses de désinstallation/réinstallation/force n'a fonctionné pour moi, mais sous OS X 10.10.5 avec le système Python 2.7.10, j'ai pu effectuer les tâches suivantes:
pip uninstall packaging pip
easy_install pip # this installed pip 1.4.1
pip install --upgrade pip # and this upgraded to the current pip
et j’ai alors pu import pkg_resources
sans problème.
Devrait vraiment apprendre à arrêter de jouer avec le système Python…
Cela a fonctionné pour moi aussi (centos 7, python 2.7).
python -m pip install --upgrade --force pip
pip install setuptools==33.1.1