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.
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.
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>
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
Sous la commande a fonctionné pour moi -
python -m pip install flask
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.
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é:
Si j'essaie d'installer pip get getpass, le message d'erreur suivant s'affiche: "Impossible de trouver une version satisfaisant l'exigence getpass"