2010-08-06 6 views
4

J'ai des problèmes avec setuptools dans un projet plus vaste où un paquet python doit être "construit" à partir de plusieurs paquets debian (chacun contenant un sous-paquetage du paquet "main"). Nous avons donc décidé d'installer les fichiers manully au lieu d'utiliser "setup.py install", mais nous ne sommes pas sûr de l'emplacement à utiliser. Nous avons d'abord utilisé un répertoire dans/usr/share que nous utilisons déjà pour d'autres choses que nous installons. Cela fonctionne bien, sauf que nous devons nous amuser avec PYTHONPATH avant de commencer toute application.Où installer manuellement les fichiers python

Y a-t-il un emplacement dans le fichier sys.path par défaut où nous pourrions installer des packages à la place? Je pensais à /usr/lib/python2.6/dist-packages (où les fichiers devraient se retrouver quand vous utilisez setuptools, n'est-ce pas?), Mais je suis un peu réticent à écrire dans un endroit comme ceci avec des scripts d'installation personnalisés ... Et si Ubuntu bascule à 2.7, devons-nous aussi nous déplacer? Toute "meilleure pratique" comment faire quelque chose comme ça? Ce concept de paquetages/dist-packages est tellement sous-documenté :(

Répondre

2

Il est un peu difficile de dire où vous devez installer vos paquets Python en tenant compte du fait que, en fait, vous pouvez l'installer n'importe où vous Le meilleur endroit à mon avis est de les mettre dans/usr/local/share/YOURPACKAGENAME au cas où il n'aurait pas été installé par apt-get (aptitude etc ...). Dans les deux cas, vous devez créer un petit wrapper autour de vous script (s) python qui insère un chemin (s) à l'endroit où vos paquets sont situés dans la variable "sys.path" Par exemple, "yum" pour Ubuntu met ses fichiers à "/ usr/share/yum -cli "par défaut et"/usr/bin/yum "le script contient les lignes suivantes:

#!/usr/bin/python 

... 

sys.path.insert(0, '/usr/share/yum-cli') 
try: 
    import yummain 
    yummain.user_main(sys.argv[1:], exit_code=True) 
except KeyboardInterrupt, e: 
    ... 

Alter nativement, vous devez définir la variable d'environnement PYTHONPATH. Il n'y a rien de mal à cela.

+0

"Il n'y a rien de mal à cela." Non, ce n'est pas. Mais c'est ennuyeux et sujet aux erreurs;) Nous utilisons aussi les modifications de sys.path maintenant :) – c089

Questions connexes