web-dev-qa-db-fra.com

Impossible de trouver une version répondant à l'exigence <package>

J'installe plusieurs Python paquets dans Ubuntu 12.04 à l'aide du fichier requirements.txt suivant:

numpy>=1.8.2,<2.0.0
matplotlib>=1.3.1,<2.0.0
scipy>=0.14.0,<1.0.0
astroML>=0.2,<1.0
scikit-learn>=0.14.1,<1.0.0
rpy2>=2.4.3,<3.0.0

et ces deux commandes:

$ pip install --download=/tmp -r requirements.txt
$ pip install --user --no-index --find-links=/tmp -r requirements.txt

(le premier télécharge les paquets et le second les installe).

Le processus est fréquemment arrêté avec l'erreur:

  Could not find a version that satisfies the requirement <package> (from matplotlib<2.0.0,>=1.3.1->-r requirements.txt (line 2)) (from versions: )
No matching distribution found for <package> (from matplotlib<2.0.0,>=1.3.1->-r requirements.txt (line 2))

que je corrige manuellement avec:

pip install --user <package>

puis exécutez à nouveau la deuxième commande pip install.

Mais cela ne fonctionne que pour ce paquet particulier. Lorsque j'exécute à nouveau la deuxième commande pip install, le processus est arrêté. Il se plaint maintenant d'un autre package requis et je dois répéter le processus, Par exemple, installez le nouveau paquet requis manuellement (avec la commande ci-dessus), puis exécutez la deuxième commande pip install.

Jusqu'ici, j'ai dû installer manuellement six, pytz, nose et maintenant, il se plaint d'avoir besoin de mock.

Y a-t-il un moyen de dire à pip d'installer automatiquement toutes les dépendances nécessaires , de sorte que je n'ai pas à le faire manuellement, un par un?

Ajouter: Cela ne se produit que dans Ubuntu 12.04 BTW. Dans Ubuntu 14.04, les commandes pip install appliquées au fichier requirements.txt fonctionnent sans problème.

103
Gabriel

Cette approche (avoir toutes les dépendances dans un répertoire et ne pas télécharger à partir d'un index) ne fonctionne que lorsque le répertoire contient tous les packages. Le répertoire doit donc contenir toutes les dépendances, mais également tous les packages dont dépendent ces dépendances (par exemple, six, pytz etc).

Vous devez donc les inclure manuellement dans requirements.txt (pour que la première étape les télécharge explicitement) ou vous devez installer tous les packages à l'aide de PyPI, puis pip freeze > requirements.txt pour stocker la liste de tous les packages nécessaires.

36
Simeon Visser

J'avais installé python3 mais mon python dans/usr/bin/python était toujours l'ancienne version 2.7

Cela a fonctionné (<pkg> était pyserial dans mon cas):

python3 -m pip install <pkg>

18
maw

Après 2 heures de recherche, j'ai trouvé un moyen de résoudre le problème en une seule ligne de commande. Vous devez connaître la version du paquet (il suffit de chercher la version PACKAGE).

Commander:

python3 -m pip install --pre --upgrade PACKAGE==VERSION.VERSION.VERSION
3

Sous la commande a fonctionné pour moi -

python -m pip install flask
2
Derick

Essayez d’installer flask via le panneau de commande powershell en utilisant la commande suivante.

>>pip install --isolated Flask

Cela permettra à l'installation d'éviter les variables d'environnement et la configuration de l'utilisateur.

2
user3782287

Pas toujours, mais dans certains cas, le paquet existe déjà. Par exemple - getpass. Il ne figure pas dans la liste "pip list" mais peut être importé et utilisé:

enter image description here

Si j'essaie d'installer pip get getpass, le message d'erreur suivant s'affiche: "Impossible de trouver une version satisfaisant l'exigence getpass"

2
svinec