Gibt es eine Möglichkeit, build_ext
Optionen zur Pip-Installation zu übergeben, um zu ändern, wie eine Erweiterung in einem Paket kompiliert wird? (Ja, ich weiß, dass man die Quelle herunterladen und mit einer benutzerdefinierten setup.cfg
erstellen/installieren kann, aber ich bin gespannt, ob es möglich ist, Optionen zu übergeben, die in setup.cfg
direkt über Pip angegeben werden können.)pass build_ext Optionen zur Pip-Installation
Antwort
Ich suchte nach solche Option in pip
und keine gefunden (durchsucht auch die source).
Ich glaube nicht, dass es keine solche Option in easy_install/setuptools zu.
Die einzige Lösung, die ich sehe, ist eine Old-School Art und Weise:
download/unpack/setup.py build_ext [options]/setup.py install
.
Sie können die Datei .pydistutils.cfg
in Ihrem Home-Verzeichnis erstellen und die Build-Optionen überschreiben, wie Sie es mit Custom setup.cfg
tun könnten, ohne das Paket zuerst entpacken zu müssen.
So zum Beispiel, können Sie so etwas schreiben umfassen Pfad & lib Suche zu ändern:
[build_ext]
include_dirs=/usr/local/include
library_dirs=/usr/local/lib64
rpath=/usr/local/lib64
es möglich ist, pip --global-option=build_ext
verwenden.
Zum Beispiel ist dies requirements.txt
für Kissen mit PNG und JPEG-Unterstützung und keine anderen externen Bibliotheken:
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"
Das ist wirklich ein Missbrauch von pip --global-option
, von this answer inspiriert, als build_ext
ein Pip-Befehl ist und nicht wirklich eine globale Pip-Option. Aber dies würde pip zwei Befehle auszuführen - erste build_ext
und dann install
- wie folgt aus:
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
Ausgezeichnet. Funktioniert wie Charme. –
- 1. Keystone: Pass Mungo Verbindung in Keystone Optionen
- 2. Symfony Pass Daten zur Ansicht
- 3. Manuell Pass zur Authentifizierung aufrufen
- 4. PHP-Array-Pass zur Funktion
- 5. Pass Arraylist als Argument zur Funktion
- 6. Pass Service von einer Aktivität zur anderen
- 7. Pass initialisieren Optionen Backbone Modell durch die Sammlung holen Methode
- 8. Link vom Inhaltsskript zur Optionen-Seite
- 9. Hinzufügen mehrerer Optionen zur PHP-Abfrage
- 10. Mischen von Pass-by-Reference und Pass-by-Value zur variablen Template-Funktion gültig?
- 11. Pass Parameter aus einer Datentabelle zur AP: Dialog
- 12. AngularJS Pass-String als Funktion zur Verwendung bei ng-click
- 13. Zugang Pass-Strategie von Pass
- 14. Optionen zur Wiederverwendung des vorhandenen Codes eines Applet?
- 15. N-Tuple von Optionen zur Option von N-Tuple
- 16. javascript Erweiterung des vorhandenen Prototyp-Musters zur Unterstützung weiterer Optionen
- 17. python argparse zur Handhabung beliebiger numerischer Optionen (wie HEAD (1))
- 18. Optionen zur Verwendung des neuesten Dockers auf Centos 6?
- 19. Boost Programm Optionen abhängige Optionen
- 20. Javascript - Pass variable Parameter
- 21. Pass Kommandozeilenparameter uwsgi Skript
- 22. Unterschied zwischen `var options = Optionen || {} `und` Optionen || (Optionen = {}) `
- 23. Pass $ this
- 24. Pass UserId zum Modell
- 25. Pass js fehlende Credentials
- 26. Pass Befehlszeilenargumente zu RSpec RakeTask dynamisch
- 27. Filter ng-Optionen aus ng-Optionen Auswahl
- 28. Dynamische Optionen in Optionen Framework Theme
- 29. Dynamics CRM Provisioning-Optionen
- 30. JS - pass _GET Variable onclick
Lustig, die ich habe meine eigene Antwort googeln bis nach völlig zu vergessen, wenn ich dies wusste. – toriningen