2009-11-17 15 views
0

J'utilise Paste pour exécuter une application Pylons. Existe-t-il un moyen de spécifier dans mon fichier de configuration de collage d'utiliser l'oeuf du répertoire courant (le même répertoire que le fichier de configuration) au lieu de regarder dans les paquets de site globaux?Python coller en utilisant oeuf global au lieu de local

Par exemple, en ce moment le fichier de configuration a:

[app:main] 
use = egg:example 

Cela ressemble certainement site-packages. Ce ne serait pas un problème, sauf que je cours deux versions du même oeuf sur le même serveur d'une manière programmable déployable, donc je dois être capable de les déployer à partir de quelque part en dehors des paquets de site.

Merci.

+0

a mis à jour ma réponse. –

Répondre

1

Une façon d'utiliser plusieurs versions du package python sur le même système est virtualenv. Il fonctionne en créant des environnements en bac à sable. Tous les packages globaux sont "visibles" à partir de l'environnement en mode bac à sable, mais vous pouvez installer de nouveaux packages dans l'environnement sandbox qui n'affecteront pas le reste du système. J'ai utilisé avec succès cette approche pour héberger la version de développement et de production d'une application web Pylons sur un seul serveur.

+0

Sinon, regardez buildout. Sert le même but que virtualenv (environnement bac à sable) et sert de sorte de makefile extensible. –

1

Lire cette même question, au moins une des réponses devrait vous aider: Making Python Use Code in My Directory (not that in /usr/...)

MISE À JOUR: Vous pouvez renommer le module local à quelque chose de légèrement différent, comme example_local.

+0

Le problème est que ce contenu est dans un fichier de configuration, et il doit changer en fonction du fichier dans lequel il se trouve. Je n'ai pas accès à des trucs python (par exemple, je ne peux pas intégrer python dans le fichier de configuration). Je ne peux pas simplement utiliser les variables d'environnement car c'est quelque chose de partagé entre les deux instances de l'application. Tricky. Je ne sais pas exactement comment je l'accomplirais, c'est pourquoi j'ai demandé :-) –