2017-08-24 1 views
1

J'ai un paquet pip valide que j'essaie de mettre sur le serveur Anaconda.org. J'ai créé le fichier meta.yaml avec le squelette de conda, qui inclut l'exigence de pint (aucune version particulière sélectionnée, donc elle devrait par défaut être la dernière.) Cependant, quand je tente de construire le paquet avec conda build, conda soulève cette erreur: Cependant, il ya une pinte qui est construite pour osx-64 ... à la fois en conda et en pip et sur ma machine - c'est celui que j'utilise pour faire fonctionner mon paquet pip. Quel référentiel est la recherche de conda pour trouver cette exigence et comment puis-je spécifier la pinte correcte à utiliser dans meta.yaml?Conda construire une erreur de dépendance insatisfiable avec pinte

Répondre

2

Conda est la chasse à travers les canaux de votre configuration, que vous pouvez voir avec la commande

conda config --get channels 

(ou conda config --show). Conda build installe toujours des paquets depuis les dépôts (ce qui veut dire qu'il ne dépend pas des paquets que vous avez installés localement) parce que c'est ce que fera un utilisateur général quand il installera votre paquet. Dans votre cas, vous devez ajouter un canal pour récupérer le package pint; vous pouvez trouver un canal approprié en cherchant sur Anaconda.org, et dans ce cas, le canal conda-forge (entre autres, mais c'est celui que je recommanderais) a le paquet pint. Vous pouvez ajouter le canal à votre configuration avec

conda config --add channels conda-forge 

ou vous pouvez l'utiliser pour cette construction unique avec l'option -c à conda build:

conda build -c conda-forge your_pacakge_name 

Voir conda-build pour plus d'informations.

+0

Si quelqu'un d'autre doit construire ceci, comment puis-je communiquer les canaux qu'il doit ajouter dans mon paquet? Je suppose dans le méta.yaml ... Existe-t-il une manière standard de spécifier ces canaux de condition de construction? –

+0

Pas aussi loin que je le sais. Puisque de nombreux canaux peuvent résoudre une dépendance (en général), le responsable du paquet ne doit pas forcer les gens à utiliser un canal particulier. Vous pouvez le mentionner dans vos documents, pour que vos utilisateurs sachent quoi faire :-) – darthbith