2014-05-20 9 views
17

Mam bardzo prosty pakiet Pure Python na PyPI, który chciałbym udostępnić na binstar. Moje pakiety są skierowane do Pythona 2.6+ i 3.2+ z pojedynczą bazą kodów. Oczekuję też, że działa równie dobrze na Windowsie, jak i na Uniksie.Utwórz pakiet conda dla wielu wersji

Czy istnieje prosty sposób kompleksowego zbudowania mojego pakietu i przesłania go do binstar dla wielu wersji Pythona?

Próbowałem naiwnie używać conda skeleton pypi zgodnie z sugestią w this article. Chciałbym replikować ten proces w wielu różnych wersjach.

+0

Wersje Pythona lub wersje pakietów? – asmeurer

+0

Wersje w języku Python – MRocklin

Odpowiedz

17

Jeśli chcesz budować przepisy na wiele różnych wersji pakietu, użyj flagi --version do conda skeleton pypi. Polecam używanie package-version jako konwencji nazewniczej dla receptur.

Jeśli chcesz zbudować ten sam pakiet dla wielu różnych wersji Pythona, użyj flagi --py do conda build, np. conda build --py 3.4 recipe. Flaga może być określona wiele razy, np. conda build --py 3.3 --py 3.4 recipe, lub możesz użyć --py all do kompilacji z Pythonem 2.6, 2.7, 3.3 i 3.4.

Aby przekonwertować pakiet na inne platformy, należy użyć conda convert (patrz: conda convert -h do wykorzystania, należy uruchomić conda update conda-build, ponieważ interfejs API nieco się ostatnio zmienił).

Najprostszym sposobem na pobranie pliku binstar jest uruchomienie conda config --set binstar_upload yes. To spowoduje, że conda build i conda convert przesłać pakiety do binstar automatycznie po ich zakończeniu.

+0

Czy istnieje możliwość użycia magicznej komendy 'conda build-all' (z odpowiednimi danymi wejściowymi określającymi wersje) w przyszłości? – MRocklin

+0

Zamierzałem dodać 'conda build - all', ale okazało się to nietrywialne ze względu na sposób, w jaki zmienna środowiskowa jest odczytywana i przechowywana jako stan globalny. – asmeurer

+0

Czy możliwe jest rozszerzenie tego? Gdzie jest zdefiniowana ta funkcja? Czy jest to skrypt powłoki, który przechowujesz w swoim katalogu conda-recipes, a następnie wywołujesz za pomocą '$ ./conda-build-all my_python_lib'? –

Powiązane problemy