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é?
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.
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
Pour que virtualenv installe tous les fichiers du fichier conditions.txt.
pip install -r requirements.txt
dans votre shellJ'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.
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)
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.
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
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
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."
essaye ça
python -m pip install -r requirements.txt
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.