C'è un modo per passare le opzioni build_ext
all'installazione di pip per modificare come viene compilata un'estensione inclusa in un pacchetto? (Sì, so che si può scaricare l'origine e compilare/installare con un setup.cfg
personalizzato, ma sono curioso se è possibile passare opzioni che possono essere specificate in setup.cfg
direttamente tramite pip.)passare le opzioni build_ext all'installazione di pip
risposta
Ho cercato tale opzione in pip
e trovato nessuno (cercato anche il source).
Non penso che non ci sia tale opzione anche in easy_install/setuptools.
L'unica soluzione che vedo è un modo vecchio stampo:
download/unpack/setup.py build_ext [options]/setup.py install
.
È possibile creare il file .pydistutils.cfg
nella home directory e sovrascrivere le opzioni di creazione come si potrebbe fare con l'setup.cfg
personalizzato, ma senza dover prima decomprimere il pacchetto.
Così, per esempio, è possibile scrivere qualcosa di simile per alterare includere & lib percorso di ricerca:
[build_ext]
include_dirs=/usr/local/include
library_dirs=/usr/local/lib64
rpath=/usr/local/lib64
E 'possibile utilizzando pip --global-option=build_ext
.
Per esempio, questo è requirements.txt
per Cuscino con il supporto PNG e JPEG e nessun altro librerie esterne:
pillow \
--global-option="build_ext" \
--global-option="--enable-zlib" \
--global-option="--enable-jpeg" \
--global-option="--disable-tiff" \
--global-option="--disable-freetype" \
--global-option="--disable-tcl" \
--global-option="--disable-tk" \
--global-option="--disable-lcms" \
--global-option="--disable-webp" \
--global-option="--disable-webpmux" \
--global-option="--disable-jpeg2000"
Questo è davvero un abuso di pip --global-option
, ispirati da this answer, come build_ext
è un comando pip e non realmente un'opzione di pip globale. Ma questo renderebbe pip di eseguire due comandi - prima build_ext
e poi install
- come questo:
pip \
build_ext \
--enable-zlib --enable-jpeg \
--disable-tiff --disable-freetype --disable-tcl --disable-tk \
--disable-lcms --disable-webp --disable-webpmux --disable-jpeg2000 \
install pillow
Eccellente. Funziona come un fascino. –
- 1. Come mantenere le opzioni di installazione del pip nel file dei requisiti effettuato da pip freeze?
- 2. Come passare le opzioni SSH con Fabric?
- 3. Passare le opzioni ssh su git clone
- 4. Passare le opzioni al modulo ES6 importa
- 5. Passare le opzioni di MSBuild quando si chiama devenv
- 6. Come posso passare le opzioni RTS a runghc?
- 7. Come passare le opzioni "-J" a javac tramite Maven?
- 8. Come posso passare usando pip tra sistema e anaconda
- 9. Come passare le opzioni del linker in msbuild tramite la riga di comando?
- 10. Come passare le opzioni a CustomType nel campo `collection` di Symfony 2.1?
- 11. Opzioni di raccolta Backbone.js
- 12. rmarkdown: manipola le opzioni del blocco programmaticamente?
- 13. come personalizzare le opzioni del prompt Bootbox.js
- 14. python pip: forza l'installazione ignorando le dipendenze
- 15. Test di controllo angolare selezionare le opzioni
- 16. angularjs: cambia dinamicamente le opzioni di filtro
- 17. jqGrid - come reimpostare le opzioni di ricerca?
- 18. Come sincronizzare le opzioni di estensione chrome
- 19. Convenzione di denominazione Scala per le opzioni
- 20. Perché expand.grid ignora le opzioni?
- 21. Riduci le opzioni in scala?
- 22. Come posso passare le opzioni al driver Selenium Chrome usando Python?
- 23. È possibile passare in modo condizionale le opzioni a un metodo in perl?
- 24. Come posso passare le opzioni SSL in "rails server" in Rails 3.0?
- 25. Non è possibile utilizzare le opzioni di query oData
- 26. Come posso far funzionare le opzioni di indentazione jshint
- 27. Gestire le opzioni complesse con le opzioni_opzioni di Boost
- 28. Quali sono le modalità e le opzioni di Ruby File.open?
- 29. Confronto NSString: opzioni: intervallo: - quale valore passare per nessuna opzione?
- 30. Perché PIP genera un errore AssertionError sul blocco dei pip?
divertente che Googled una mia risposta dopo dimenticando completamente che conoscevo una volta che questo. – toriningen