web-dev-qa-db-fra.com

Comment installer des paquets en utilisant pip selon le fichier exigences.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 packages + autres.

J'ai créé un nouveau virtualenv avec

bin/virtualenv testing

lors de l'activation, j'ai essayé d'installer les packages en fonction de Requirements.txt à partir du répertoire d'archive local.

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

J'ai 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'était correctement installé. Je ne peux pas importer le package et aucun ne se trouve dans le répertoire site-packages de mon virtualenv. Alors qu'est-ce qui a mal tourné?

908
kakarukeys

Cela fonctionne pour moi:

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

--no-index - Ignore l'index du package (uniquement à la place de --find-links URL).

-f, --find-links <URL> - Si une URL ou un chemin d'accès à un fichier html, analysez les liens vers les archives. Si un chemin d'accès local ou une URL file:// _ est un répertoire, recherchez les archives dans la liste des répertoires.

631
codeape

J'ai lu ce qui précède, réalisez qu'il s'agit d'une vieille question, mais elle reste totalement irrésolue et reste en tête de mes résultats de recherche Google. Voici donc une réponse qui convient à tout le monde:

pip install -r /path/to/requirements.txt
1209
Mike Lyons

Pour que virtualenv installe tous les fichiers du fichier conditions.txt.

  1. cd dans le répertoire dans lequel Requirements.txt se trouve
  2. activer votre virtualenv
  3. lancer: pip install -r requirements.txt dans votre shell
116
Aaron Lelevier

J'avais 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 bibliothèques génériques pour le développement ont été manquées.

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 cela vous aiderait.

50
enriquetaso
pip install -r requirements.txt

Pour plus de détails s'il vous plaît vérifier l'option d'aide.

pip install --help

Nous pouvons trouver l'option '-r'

-r, --requirement Installez à partir du fichier de configuration requis. Cette option peut être utilisée plusieurs fois.

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

enter image description here

Ce qui précède constitue également l’ensemble complet des options. Veuillez utiliser pip install --help pour obtenir la liste complète des options.

23
Py_minion

Souvent, vous souhaiterez une installation rapide à partir d’archives locales, sans avoir à analyser PyPI.

Tout d’abord, téléchargez les archives qui répondent à vos besoins:

$ pip install --download <DIR> -r requirements.txt

Ensuite, installez en utilisant –find-links et –no-index:

$ pip install --no-index --find-links=[file://]<DIR> -r requirements.txt
15
Jadav Bheda

Réponse courte

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

ou sous une autre forme:

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

Explication

Ici, -r est une forme abrégée de --requirement et il demande à la pip d'installer à partir du fichier requirements donné.

pip ne démarrera l'installation qu'après avoir vérifié la disponibilité de tous les éléments répertoriés dans le fichier requirements et ne démarrera pas l'installation, même si l'un des requirement n'est pas disponible.

Une solution pour installer les packages disponibles consiste à installer les packages répertoriés un par un. Utilisez la commande suivante pour cela. Un avertissement de couleur rouge s'affichera pour vous informer des packages non disponibles.

cat requirements.txt | xargs -n 1 pip install

Pour ignorer les commentaires (lignes commençant par un #) et les lignes vides, utilisez:

cat requirements.txt | cut -f1 -d"#" | sed '/^\s*$/d' | xargs -n 1 pip install
12
Safwan

Je travaille avec un grand nombre de systèmes mis au rebut par les développeurs "en suivant les instructions qu'ils ont trouvées sur Internet". Il est extrêmement courant que votre pip et votre python ne consultent pas les mêmes chemins/packages de sites. Pour cette raison, quand je tombe sur une anomalie, je commence par faire ceci:

$ python -c 'import sys; print(sys.path)'
['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages']

$ pip --version
pip 9.0.1 from /usr/local/lib/python2.7/dist-packages (python 2.7)

C'est un système heureux.

Ci-dessous se trouve un système malheureux. (Ou du moins, c'est un système parfaitement ignorant qui rend les autres malheureux.)

$ pip --version
pip 9.0.1 from /usr/local/lib/python3.6/site-packages (python 3.6)

$ python -c 'import sys; print(sys.path)'
['', '/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python27.Zip',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/site-packages']

$ which pip pip2 pip3
/usr/local/bin/pip
/usr/local/bin/pip3

C'est malheureux parce que pip est (python3.6 et) en utilisant /usr/local/lib/python3.6/site-packages alors que python est (python2.7 et) en utilisant /usr/local/lib/python2.7/site-packages

Lorsque je veux m'assurer que j'installe des exigences dans le à droite python, je fais ceci:

$ which -a python python2 python3
/usr/local/bin/python
/usr/bin/python
/usr/local/bin/python2
/usr/local/bin/python3

$ /usr/bin/python -m pip install -r requirements.txt

Vous avez entendu, "Si ce n'est pas cassé, n'essayez pas de le réparer." La version de DevOps est la suivante: "Si vous ne le supprimez pas et que vous pouvez le contourner, n'essayez pas de le réparer."

9
Bruno Bronosky

essaye ça

python -m pip install -r requirements.txt
8
Jema

Installation du fichier requirements.txt dans env virtuel avec python 3:

J'ai eu le même problème. J'essayais d'installer le fichier Requirements.txt dans un environnement virtuel. J'ai trouvé la solution.

Au départ, j'ai créé mon env virtuel de la manière suivante:

virtualenv -p python3 myenv

Activer l'environnement en utilisant:

source myenv/bin/activate

Maintenant, j'ai installé le fichier requirements.txt en utilisant:

pip3 install -r requirements.txt

L'installation a réussi et j'ai pu importer les modules.

6
janu777