2009-12-09 5 views
2

Lorsque je déploie mes applications qui fonctionnent correctement avec le serveur de test django, j'obtiens généralement des erreurs pour chaque paquet que j'installe en utilisant pip install -e .... # egg = foo. Je le fais habituellement en utilisant virtualenv, qui place les fichiers dans env/src/foo et place un autre fichier dans python/site-packages (ceci est un exemple de django-css):Pip + erreurs d'importation WSGI

django-css.egg-link, qui contient les lignes suivantes:

/home/pinax-0.7.1/src/django-css 
. 

comment puis-je dire wsgi qu'il devrait suivre ces liens, ou je fais quelque chose de mal tout à fait.

grâce, Philipp Wassibauer

Répondre

4

C'est ce que mon script pour WSGI Django dans un virtualenv ressemble:

import os 
os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings' 

import site 
site.addsitedir('/path/to/virtualenv/lib/python2.6/site-packages') 

from django.core.handlers.wsgi import WSGIHandler 
application = WSGIHandler() 

Le bit clé est site.addsitedir(...), qui ajoute le contenu des fichiers *.pth dans le répertoire spécifié à sys.path. Dans ce cas, c'est le fichier easy-install.pth que Python a besoin d'aide pour trouver.

+0

merci ... cela a fonctionné. Je savais que c'était juste quelque chose de petit et facile qui me manquait. –

+0

+1. Les fichiers .egg-link ne sont pas liés à l'importation, ils ne sont que des métadonnées pour que setuptools se souvienne où se trouve le code. La magie liée à l'importation se produit dans easy-install.pth. –

0

La documentation modwsgi a des notes sur how to use virtualenv. Il est généralement aussi simple que de modifier votre fichier django.wsgi (ou quel que soit votre nom) afin qu'il ajoute l'environnement virtualenv au chemin de modwsgi.

This link a quelques notes distillées supplémentaires sur l'utilisation de pip/virtualenv/modwsgi.

Questions connexes