2014-05-20 1 views
17

J'ai un très simple paquet Pure Python sur PyPI que je voudrais mettre à disposition sur binstar. Mon paquet cible Python 2.6+ et 3.2+ avec une base de code unique. Je m'attends aussi à ce qu'il fonctionne aussi bien sur Windows que sur Unix.Créer un package conda sur plusieurs versions

Existe-t-il un moyen simple de créer mon paquet et de le télécharger sur binstar pour de nombreuses versions de Python?

J'ai essayé une utilisation naïve de conda skeleton pypi comme suggéré dans this article. J'aimerais reproduire ce processus dans de nombreuses versions différentes.

+0

Versions Python ou versions de paquet? – asmeurer

+0

Versions Python – MRocklin

Répondre

17

Si vous souhaitez créer des recettes pour différentes versions du package, utilisez l'indicateur --version pour conda skeleton pypi. Je recommande d'utiliser package-version comme convention de dénomination pour les recettes.

Si vous souhaitez créer le même package pour de nombreuses versions différentes de Python, utilisez l'indicateur --py pour conda build, comme conda build --py 3.4 recipe. Le drapeau peut être spécifié plusieurs fois, comme conda build --py 3.3 --py 3.4 recipe, ou vous pouvez utiliser --py all pour compiler Python 2.6, 2.7, 3.3 et 3.4.

Pour convertir le package vers d'autres plateformes, utilisez conda convert (voir conda convert -h pour l'utilisation; veillez à exécuter conda update conda-build, car l'API a récemment été modifiée).

La méthode la plus simple pour télécharger le fichier binstar consiste à exécuter conda config --set binstar_upload yes. Cela entraînera conda build et conda convert pour télécharger automatiquement les packages à Binstar lorsqu'ils sont terminés.

+0

N'importe quelle possibilité d'une commande magique 'conda build-all' (avec des entrées appropriées spécifiant des versions) dans le futur de conda? – MRocklin

+0

J'allais ajouter 'conda build --all' mais ça s'est avéré non trivial à cause de la façon dont la variable d'environnement est lue et stockée en tant qu'état global. – asmeurer

+0

Pourrait développer cela un peu? Où cette fonction est-elle définie? Est-ce un script shell que vous gardez dans votre répertoire conda-recipes et ensuite appelez avec $ ./conda-build-all my_python_lib'? –

Questions connexes