2014-06-07 16 views
7

Jestem przyzwyczajony do wstępnego pobierania pakietów za pomocą Pip, a następnie kopiowania ich na maszynę docelową do wdrożenia. Z nowo wprowadzonymi Python Wheels, jestem zmuszony do "pip ... --no-use-wheel", ponieważ niektóre z pobranych pakietów są specyficzne dla platformy (rozwijam się na OSX i wdrażam w Debianie) i nie będę zainstalować na komputerze docelowym. Czy istnieje sposób na pobranie Koła na platformy docelowe (lub niezależne od platformy)?Jak pobrać wieloplatformowe koła za pośrednictwem pip?

+0

edytowany tytuł Twojego pytania jako Myślę 'cross-platform' (przypominający' cross-compilation' lepiej wyjaśnia, co próbujesz osiągnąć: stworzenie pakietu binarnego na platformie A dla innej platformy B (w przeciwieństwie do oryginalnego tytułu sugerującego utworzenie pakietu "uniwersalnego", który - BTW - może nie być możliwy, jeśli pakiet ma skompilowany kod w nim) – mac

Odpowiedz

0

Najprostszym sposobem osiągnięcia tego celu jest użycie przez IMO niestandardowego skryptu.

Możesz uzyskać dostęp do całego indeksu PyPI poprzez interfejs simple, jeśli pakiet, który oferuje, oferuje jedno lub więcej kół, zostaną one wymienione na tym samym adresie + /<package-name>.

Na przykład: jeśli było zainstalować setuptools wszystkie koła będzie notowana na: https://pypi.python.org/simple/setuptools/

w skrypcie, należy pamiętać, aby wdrożyć zalecaną priorytet tag w sposób określony przez PEP-425. Zasadniczo sprowadza się to do pobrania najbardziej specyficznej (w przeciwieństwie do najbardziej ogólnej) wersji pakietu, ponieważ zwykle przekłada się to na zalety wydajności, na przykład rozszerzenia C zastępujące czysto Pythonowe implementacje niektórych algorytmów.

2

Komenda pip download ma teraz --platform argument, który można użyć, aby określić żądaną Platforma:

pip download --platform=manylinux1_x86_64 --only-binary=:all: lxml 
+0

Dlaczego nie ma pasującej dystrybucji dla niektórych pakietów? Takich jak 'pip download --only-binary =: all: --platform = manylinux1_x86_64 tornado' . Jak mogę pobrać te pakiety? –

+0

@SiminJie nie wszystkie pakiety mają wszystkie dystrybucje dostępne jako koła, ale jestem pewien, że opiekun pakietu zaakceptowałby wkład do adresu ;-) – sitaktif

Powiązane problemy