Je rencontre des difficultés avec les paramètres --global-option et --install-option d'un fichier requirements.txt. La spécification des options pour une bibliothèque entraîne l'échec des autres installations de bibliothèques. J'essaie d'installer les bibliothèques Python "grab" et "pycurl". Je dois spécifier que pycurl soit installé avec l'option: "--with-nss". Je peux reproduire l'erreur sur un environnement virtuel complètement propre.Pip Requirements.txt --global-option entraînant des erreurs d'installation avec d'autres packages. "option not recognized"
Sur un nouvel environnement virtuel avec requirements.txt contenant:
grab==0.6.25
pycurl==7.43.0 --install-option='--with-nss'
ensuite avec l'installation:
pip install -r requirements.txt
Les erreurs suivantes se produiront.
Installing collected packages: lxml, pycurl, pytils, six, user-agent, weblib, selection, grab
Running setup.py install for lxml ... done
Running setup.py install for pycurl ... done
Running setup.py install for pytils ... error
Complete output from command /home/ec2-user/test/env/bin/python2.7 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-8GvFzA/pytils/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n
'), __file__, 'exec'))" install --record /tmp/pip-BCG3Wl-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/ec2-user/test/env/include/site/python2.7/pytils --with-nss:
usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: -c --help [cmd1 cmd2 ...]
or: -c --help-commands
or: -c cmd --help
error: option --with-nss not recognized
----------------------------------------
Command "/home/ec2-user/test/env/bin/python2.7 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-8GvFzA/pytils/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))"
install --record /tmp/pip-BCG3Wl-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/ec2-user/test/env/include/site/python2.7/pytils --with-nss" failed with error code 1 in /tmp/pip-build-8GvF
zA/pytils/
Ma meilleure estimation à la cause fondamentale est que l'option « --with-nss » est transmis à toutes les bibliothèques qui nécessitent pycurl, et empêcher l'installation. L'installation de pytils échoue même si l'installation de pycurl fonctionne correctement.
Y a-t-il un moyen de transmettre uniquement les options d'installation à la bibliothèque?
Je configure ceci sur une instance Amazon Elastic Beanstalk, donc il n'y a pas d'option pour exécuter manuellement chaque ligne du fichier requirements.txt - l'installation entière est exécutée au démarrage de l'application.
Sources pour --global-option et l'option --install-(qui je pense ne devrait pas le faire): How to maintain pip install options in requirements file made by pip freeze? https://github.com/pypa/pip/blob/develop/docs/reference/pip_install.rst#id28