J'essaie de construire l'API Python pour un projet open source appelé Zulip et je rencontre toujours le même problème, comme indiqué dans la capture d'écran ci-dessous.
J'utilise python3 et la version de mon pip est 10.0.0. Le fichier en question est setup.py
et le code qui perturbe le moment où vous accédez à l'attribut pip.main()
pour installer un package.
Maintenant, je sais que cette version devrait réussir parce que c'est un projet open source, mais j'essaie depuis des heures de résoudre le problème de dépendance concernant pip.main()
.
Toute aide serait grandement appréciée.
python3 -m pip install --user --upgrade pip==9.0.3
Première exécution
import pip
pip.__version__
Si le résultat est '10 .0.0 ', cela signifie que vous avez installé pip avec succès.
comme pip 10.0.0 ne supporte plus pip.main (), vous pouvez trouver cela utile
https://pip.pypa.io/en/latest/user_guide/#using-pip-from-your-program
Utilisez quelque chose comme
import subprocess
subprocess.check_call(["python", '-m', 'pip', 'install', 'pkg']) # install pkg
subprocess.check_call(["python", '-m', 'pip', 'install',"--upgrade", 'pkg']) # upgrade pkg
Edit: le pip 10.0.1 ne supporte toujours pas le main
Vous pouvez choisir de mettre à niveau votre version de pip en utilisant la commande suivante: python -m pip install --upgrade pip==9.0.3
Il semblerait que pip ait fait un refactor et déplacé la main vers l’interne. Il y a une discussion complète à ce sujet ici: https://github.com/pypa/pip/issues/5240
Une solution de contournement pour moi était de changer
import pip
pip.main(...)
à
from pip._internal import main
main(...)
Je recommande de lire la discussion, je ne suis pas sûr que ce soit la meilleure approche, mais cela a fonctionné pour mes objectifs.
Cela m'aide, https://pip.pypa.io/fr/stable/installing/
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
Si vous utilisez python3 et que vous ne le définissez pas par défaut. fais ça,
python3 get-pip.py
Ça marche pour moi.
Pour vérifier si votre problème d'installation pip
correspond, essayez d'utiliser easy_install
pour installer une version antérieure de pip:
easy_install pip==9.0.1
Si cela réussit, pip
devrait fonctionner maintenant. Ensuite, vous pouvez installer n'importe quelle autre version de pip
avec:
pip install pip==10....
Ou vous pouvez simplement rester avec version 9.0.1
, car votre projet nécessite une version> = 9.0.
Essayez de construire votre projet à nouveau.
Si python -m pip install --upgrade pip==9.0.3
ne fonctionne pas et que vous utilisez Windows,
Fermez votre IDE si vous l'avez ouvert.
Appuyez sur 'Réparer' sous Python 3.
Le Pip 10.0. * Ne supporte pas le main.
Vous devez rétrograder au pip 9.0.3.
Pas sûr de Windows. Mais pour les utilisateurs de mac, utilisez ceci:
pip install --upgrade pip==9.0.3
Ma solution consiste à vérifier le numéro de version de pip et à utiliser correctement l'importation de la fonction principale appropriée.
import pip
if int(pip.__version__.split('.')[0])>9:
from pip._internal import main
else:
from pip import main
def install(package):
main(['install', package])
Étape 1 Curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py Étape2 Python get-pip.py
J'ai corrigé ce problème lors de la mise à niveau vers la dernière version
Sudo pip install --upgrade pip
Ma version: pip 18.1 depuis /Library/Python/2.7/site-packages/pip (python 2.7)
Editer le fichier: C:\Utilisateurs\kpate\hw6\python-zulip-api\zulip_bots\setup.py à la ligne 108
à
rcode = pip.main(['install', '-r', req_path, '--quiet'])
faire
rcode = getattr(pip, '_main', pip.main)(['install', '-r', req_path, '--quiet'])´
J'ai fait face à la même erreur lors de l'utilisation de pip sur anaconda3 4.4.0 (python 3.6) sur Windows.
J'ai résolu le problème avec la commande suivante:
easy_install pip==18.* ### installing the latest version pip
Ou si la version inférieure pip est requise, indiquez la même chose dans la commande.
Ou vous pouvez essayer d'installer la version inférieure et de la mettre à niveau vers la dernière version comme suit:
easy_install pip==9.0.1
easy_install --upgrade pip
Ça marche bien:
py -m pip install --user --upgrade pip==9.0.3