Par exemple, que se passe-t-il si PIL
, python-rsvg
et libev3
sont des dépendances du programme? Ces dépendances ne sont pas dans l'index pypi, les deux derniers sont des noms de paquets Debian.Comment écrire un fichier setup.py pour un programme dépendant de packages en dehors de pypi
Répondre
Ne les placez pas dans vos dépendances et documentez-les dans votre INSTALL ou README.
Si vous empaquetez quelque chose à installer sur Debian (comme implicite), le meilleur moyen de gérer les dépendances est de compresser votre programme en .deb et d'exprimer les dépendances de manière Debian. (Remarque: PIL est disponible dans Debian sous la forme python-imaging
.)
Comme le fichier setup.py est également un code Python, vous pouvez simplement télécharger et exécuter le fichier setup.py sur ces paquets.
Vous pouvez utiliser setuptools. setuptools vous permet d'ajouter n'importe quel type de Python installable (tout paquetage distutils/setuptools activé) en tant que dépendance, que ce soit sur PyPI ou non.
Par exemple, dépendre de PIL 1.1.6, utilisez quelque chose comme:
setup(...,
install_requires = ["http://effbot.org/downloads/Imaging-1.1.6.tar.gz"],
...)
Voir setuptools docs pour plus d'informations.
J'ai signalé ce problème ici:
http://mail.python.org/pipermail/python-list/2009-September/727045.html
ceci devrait être ajouté comme commentaire, pas comme réponse. – jldupont
Comment est PIL à son tour va faire face aux dépendances qui ne sont pas des paquets de python? – btw0
setuptools ne va exécuter que "setup.py install" comme d'habitude, toute gestion des dépendances est conforme au processus par défaut de Imaging, donc, si Imaging le fait correctement, comme il se doit, vous obtenez PIL correctement installé. En dehors de cela, vous avez peu de bons choix: 1) informer votre utilisateur quels paquets "natifs" il doit installer en utilisant le processus par défaut de distribution, 2) créer un paquet natif de distribution et configurer les dépendances (la partie laide est là il y a beaucoup de distributions là-bas). –