Sono in difficoltà con le opzioni --global-option e --install-option per un file requirements.txt. Se si specificano le opzioni per una libreria, le installazioni di altre librerie falliscono.Pip Requirements.txt --global-option che causa errori di installazione con altri pacchetti. "opzione non riconosciuta"
Sto cercando di installare le librerie Python "grab" e "pycurl". Devo specificare che pycurl sia installato con l'opzione: "--with-nss". Posso replicare l'errore su un ambiente virtuale completamente pulito.
In un nuovo ambiente virtuale Con requirements.txt contenente:
grab==0.6.25
pycurl==7.43.0 --install-option='--with-nss'
Poi installazione con:
pip install -r requirements.txt
si verificano i seguenti errori.
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/
La mia ipotesi migliore presso la causa principale è che l'opzione "--with-NSS" è stato passato a tutte le librerie che richiedono pycurl, e prevenire l'installazione. L'installazione di pytils fallisce anche se l'installazione di pycurl funziona correttamente.
È comunque necessario passare solo le opzioni di installazione all'unica libreria?
L'ho impostato su un'istanza Amazon Elastic Beanstalk, quindi non è possibile eseguire manualmente ciascuna riga del file requirements.txt: l'intera installazione viene eseguita all'avvio dell'applicazione.
Fonti per --global-option e --install-opzione (che credo non dovrebbe farlo): 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