1612 votes

Comment puis-je installer des paquets en utilisant pip selon le fichier requirements.txt à partir d'un répertoire local ?

Voici le problème :

J'ai un exigences.txt qui ressemble à :

BeautifulSoup==3.2.0
Django==1.3
Fabric==1.2.0
Jinja2==2.5.5
PyYAML==3.09
Pygments==1.4
SQLAlchemy==0.7.1
South==0.7.3
amqplib==0.6.1
anyjson==0.3
...

J'ai un répertoire d'archives local contenant tous les paquets + d'autres.

J'ai créé un nouveau virtualenv avec

bin/virtualenv testing

Après l'avoir activé, j'ai essayé d'installer les paquets selon la procédure suivante exigences.txt à partir du répertoire d'archives local.

source bin/activate
pip install -r /path/to/requirements.txt -f file:///path/to/archive/

J'ai obtenu des résultats qui semblent indiquer que l'installation est correcte :

Downloading/unpacking Fabric==1.2.0 (from -r ../testing/requirements.txt (line 3))
  Running setup.py egg_info for package Fabric
    warning: no previously-included files matching '*' found under directory 'docs/_build'
    warning: no files found matching 'fabfile.py'
Downloading/unpacking South==0.7.3 (from -r ../testing/requirements.txt (line 8))
  Running setup.py egg_info for package South
....

Mais une vérification ultérieure a révélé qu'aucun des paquets n'est installé correctement. Je ne peux pas importer le paquet, et aucun n'est trouvé dans le répertoire site-packages de mon virtualenv. Alors, qu'est-ce qui a mal tourné ?

5 votes

Avez-vous essayé d'utiliser --no-index donc il ne regarde même pas PyPI ?

3 votes

Vous avez coupé le message d'erreur. Il se trouve généralement en bas de la page.

0 votes

Vous pouvez utiliser les chemins d'accès aux fichiers au lieu des noms des paquets, ce qui signifie que vous devrez modifier le fichier requirements.txt, mais que la commande pip install restera la même.

1997voto

Mike Lyons Points 1262

Cela fonctionne pour tout le monde :

pip install -r /path/to/requirements.txt

406 votes

Je réalise que cette réponse ne répond pas à la question originale, mais elle répond à la question que je me posais lorsque j'ai trouvé ceci sur Google...

104 votes

Pour ceux qui aiment savoir ce qu'ils tapent, le -r de la commande signifie simplement "installer à partir d'un fichier d'exigences", et est un raccourci pour --requirement

4 votes

Lorsque je veux mettre à jour un paquet (par exemple Django), je change la version dans mon fichier requirements.txt et j'exécute ensuite pip install -r /path/to/requirements.txt . Il détecte le changement, met à jour le paquet et laisse tout le reste tranquille.

1084voto

codeape Points 38576

Cela fonctionne pour moi :

$ pip install -r requirements.txt --no-index --find-links file:///tmp/packages

--no-index - Ignorer l'index des paquets (ne regarder que les --find-links URL à la place).

-f, --find-links <URL> - S'il s'agit d'une URL ou d'un chemin d'accès à un fichier HTML, il faut rechercher des liens vers des archives.

Si un chemin local ou file:// URL qui est un annuaire, alors cherchez les archives dans la liste de l'annuaire.

9 votes

Informations sur --no-index à partir de la commande pip help install --no-index Ignorer l'index des paquets (ne regarder que les --find-links URL à la place). Informations sur --find-links à partir de la commande pip help install -f , --find-links <url> S'il s'agit d'une url ou d'un chemin d'accès à un fichier html, il faut rechercher des liens vers des archives. S'il s'agit d'un chemin local ou d'une url file:// qui est un répertoire, recherchez les archives dans la liste du répertoire.

2 votes

// , Cela pourrait être une solution très élégante, surtout si l'on tient compte de l'éternelle lutte contre la vente : bitprophet.org/blog/2012/06/07/on-vendorizing

0 votes

Une précaution à prendre avec ça est que vous pouvez pip install <some_module> sans utiliser requirements.txt mais cela ne mettra pas à jour requirements.txt . Une alternative pourrait être de mettre à jour un docker de façon à ce qu'il liste toutes les commandes pip install qui sont exécutées pour installer les dépendances.

182voto

Aron Ysidoro Points 922

Pour que virtualenv installe tous les fichiers du répertoire exigences.txt fichier.

  1. cd dans le répertoire où exigences.txt est situé
  2. activez votre virtualenv
  3. courir : pip install -r requirements.txt dans votre coquille

4 votes

"pyenv virtualenv pip install requirements.txt not working" pour l'amour de Google...

1 votes

Pip3 install -r requirements.txt a fonctionné pour moi dans venv

76voto

enriquetaso Points 805

J'ai eu un problème similaire. J'ai essayé ceci :

    pip install -U -r requirements.txt

(-U = mettre à jour s'il était déjà installé)

Mais le problème a continué. J'ai réalisé que certaines des bibliothèques génériques pour le développement étaient manquantes.

    sudo apt-get install libtiff5-dev libjpeg8-dev zlib1g-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python-tk

Je ne sais pas si ça peut vous aider.

52voto

Py_minion Points 1128

Utilisez :

pip install -r requirements.txt

Pour plus de détails, veuillez consulter l'option d'aide :

pip install --help

Nous pouvons trouver l'option '-r' -.

-r, --requirement Installer à partir du fichier d'exigences donné. Cette option peut être utilisée plusieurs fois.

Informations supplémentaires sur certaines options d'installation pip couramment utilisées (il s'agit de l'option d'aide de la commande pip install) :

Enter image description here

Vous trouverez également ci-dessus l'ensemble des options. Veuillez utiliser pip install --help pour la liste complète des options.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X