2014-05-20 6 views
17

Ich habe eine sehr einfache Pure Python-Paket auf PyPI, die ich gerne auf binstar zur Verfügung stellen würde. Mein Paket zielt auf Python 2.6+ und 3.2+ mit einer einzigen Codebasis ab. Ich erwarte auch, dass es unter Windows genauso gut funktioniert wie unter Unix.Erstellen conda-Paket über viele Versionen

Gibt es eine einfache Möglichkeit, mein Paket umfassend zu erstellen und für viele Python-Versionen auf binstar hochzuladen?

Ich habe eine naive Verwendung von conda skeleton pypi wie in this article vorgeschlagen versucht. Ich möchte diesen Prozess in vielen verschiedenen Versionen replizieren.

+0

Python-Versionen oder Paketversionen? – asmeurer

+0

Python-Versionen – MRocklin

Antwort

17

Wenn Sie Rezepte für viele verschiedene Versionen des Pakets erstellen möchten, verwenden Sie das --version Flag zu conda skeleton pypi. Ich empfehle package-version als Namenskonvention für die Rezepte.

Wenn Sie das gleiche Paket für viele verschiedene Python-Versionen erstellen möchten, verwenden Sie das Flag --py zu conda build, wie conda build --py 3.4 recipe. Das Flag kann mehrfach angegeben werden, zB conda build --py 3.3 --py 3.4 recipe, oder Sie können --py all verwenden, um gegen Python 2.6, 2.7, 3.3 und 3.4 zu bauen.

Um das Paket auf andere Plattformen zu konvertieren, verwenden conda convert (conda convert -h für den Einsatz sehen, sollten Sie conda update conda-build, da die API ein wenig vor kurzem geändert laufen).

Der einfachste Weg zum Hochladen von binstar ist die Ausführung von conda config --set binstar_upload yes. Dies veranlasst conda build und conda convert, die Pakete automatisch auf binstar hochzuladen, wenn sie fertig sind.

+0

Irgendeine Möglichkeit eines magischen 'conda build-all'-Befehls (mit geeigneten Eingängen, die Versionen spezifizieren) in der Zukunft von conda? – MRocklin

+0

Ich wollte 'conda build --all 'hinzufügen, aber es stellte sich heraus, dass es nicht trivial war, weil die Umgebungsvariable gelesen und als globaler Status gespeichert wurde. – asmeurer

+0

Könnte ich das etwas erweitern? Wo ist diese Funktion definiert? Ist das ein Shell-Skript, das Sie in Ihrem conda-recipes-Verzeichnis behalten und dann mit '$ ./conda-build-all my_python_lib' aufrufen? –

Verwandte Themen