Czy jest jakiś sposób przekazania build_ext
opcji instalacji pip, aby zmienić sposób kompilacji rozszerzenia zawartego w pakiecie? (Tak, wiem, że można pobrać źródło i zbudować/zainstalować z niestandardowym setup.cfg
, ale jestem ciekawy, czy można przekazać opcje, które można określić w setup.cfg
bezpośrednio przez pip.)przekazać opcje build_ext do instalacji pip
Odpowiedz
Szukałem taka opcja w pip
i nie znalazła żadnej (przeszukiwano również source).
Nie sądzę, że nie ma takiej opcji również w easy_install/setuptools.
Jedynym rozwiązaniem widzę to sposób starej szkoły:
download/unpack/setup.py build_ext [options]/setup.py install
.
Możesz utworzyć plik .pydistutils.cfg
w swoim katalogu domowym i zastąpić opcje kompilacji, tak jak można zrobić z niestandardowym setup.cfg
, ale bez konieczności rozpakowywania pakietu w pierwszej kolejności.
Tak więc, na przykład, można napisać coś podobnego do zmiany obejmują & lib ścieżkę przeszukiwania:
[build_ext]
include_dirs=/usr/local/include
library_dirs=/usr/local/lib64
rpath=/usr/local/lib64
jest to możliwe przy użyciu pip --global-option=build_ext
.
Na przykład to requirements.txt
na poduszkę PNG i JPEG wsparcia i bez innych bibliotek zewnętrznych:
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"
to naprawdę nadużyciem pip --global-option
zainspirowani this answer, jak build_ext
jest polecenie pip i nie bardzo globalna opcja pip. Ale byłoby to zrobić pip wykonać dwa polecenia - pierwsze build_ext
a następnie install
- tak:
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
Doskonały. Działa jak urok. –
- 1. Logi instalacji Virtualenv/pip?
- 2. Jak zachować opcje instalacji pip w pliku wymagań utworzonym przez pip freeze?
- 3. Błąd podczas instalacji z pip
- 4. Jak przekazać domyślną lokalizację instalacji do programu ładującego RtfLicense?
- 5. Jak zainstalować PIP w nowej instalacji Pythona
- 6. Błąd podczas próby instalacji pip na openSUSE
- 7. pip geoip instalacji w błędzie ubuntu gcc
- 8. Błąd przy instalacji pip scikit-image
- 9. Jak dołączyć git zależności w setup.py do instalacji pip
- 10. Jak przekazać opcje do sterownika Selenium Chrome przy użyciu Pythona?
- 11. Jak przekazać opcje linkera do msbuild za pomocą wiersza poleceń?
- 12. Jak przekazać opcje do CustomType w polu `collection` Symfony 2.1?
- 13. Jak przekazać opcje "-J" do javac poprzez Maven?
- 14. Czy można warunkowo przekazać opcje do metody w Perlu?
- 15. Windows7 64bit python błąd instalacji pip: Nie można znaleźć vcvarsall.bat
- 16. pip błąd podczas instalacji Pythona: "Ignorowanie awarię ensurepip: pip 8.1.1 wymaga SSL/TLS"
- 17. Dlaczego pip nie działa przy instalacji lokalnego repozytorium jaj?
- 18. Nie można zainstalować instalacji pip pyautogui, kod błędu 1
- 19. Uzyskaj datę i czas instalacji pakietów zainstalowanych za pośrednictwem pip
- 20. Problemy z aktualizacją pip w instalacji Homebrew Python 2.7 instalacja
- 21. Brak błędu specyfikacji dystrybucji przy użyciu instalacji pip z wymagań
- 22. Błąd instalacji pip "Brak takiego pliku lub katalogu: setup.py"
- 23. `tabele instalacji pip 'nie działają z błędem :: Nie można znaleźć lokalnej instalacji HDF5
- 24. Użyj pip lub conda do zarządzania pakietami?
- 25. SSLError pip install (do zainstalowania tensorflow)
- 26. Projekt instalacji .net: Jak przekazać wiele pól CustomActionData
- 27. Dostarczanie argumentów NumPy site.cfg do pip
- 28. instalacja pip do lokalnego folderu
- 29. Dlaczego do instalacji Pythona należy używać Homebrew?
- 30. Dlaczego PIP wywołuje błąd AssertionError podczas zamrażania pip?
zabawne, że mam google moją własną odpowiedź po całkowicie zapominając kiedyś o tym wiedział. – toriningen