2011-07-15 1 views
4

J'ai déployé un projet django sur un serveur fonctionnant sous Debian Lenny. Chaque fois qu'il démarre l'avertissement suivant apparaît:UserWarning: Le module _mysql a déjà été importé de /usr/lib/pymodules/python2.6/_mysql.so

/var/www/environment/XXX/src/django-pytest/django_pytest/test_runner.py:3: UserWarning: Module _mysql was already imported from /usr/lib/pymodules/python2.6/_mysql.so, but /usr/lib/pymodules/python2.6 is being added to sys.path 
    from pkg_resources import load_entry_point 

Il y a plus d'un projet Django sur ce serveur particulier, chacun fonctionnant à l'intérieur de leur propre virtualenv (avec les paquets Python installés par pip). Cependant, ils accèdent également aux packages de site à l'échelle du système (qui sont installés via apt-get install).

Ce projet particulier a les paquets Python suivants:

$ /var/www/environment/XXX/bin/pip freeze --local 
Django==1.2.4 
Fabric==0.9.4 
South==0.7.3 
distribute==0.6.10 
django-pagination==1.0.7 
-e git+http://github.com/galileo-press/[email protected]#egg=django_pytest-0.1.4-py2.6-dev 
django-sorting==0.1 
django-templatetag-sugar==0.1 
paramiko==1.7.6 
py==1.4.3 
pycrypto==2.3 
pytest==2.0.0 

sous debian python-mysqldb 1.2.2-10 + b1 est installé et les fichiers vivent dans

$ apt-file list python-mysqldb 
python-mysqldb: /usr/lib/pyshared/python2.5/_mysql.so 
python-mysqldb: /usr/lib/pyshared/python2.6/_mysql.so 
python-mysqldb: /usr/share/pyshared/MySQL_python-1.2.2.egg-info/PKG-INFO 
python-mysqldb: /usr/share/pyshared/MySQL_python-1.2.2.egg-info/SOURCES.txt 
python-mysqldb: /usr/share/pyshared/MySQL_python-1.2.2.egg-info/dependency_links.txt 
python-mysqldb: /usr/share/pyshared/MySQL_python-1.2.2.egg-info/top_level.txt 
python-mysqldb: /usr/share/pyshared/MySQLdb/__init__.py 
... 

Bien que ce soit seulement un ennui mineur, j'aime vraiment résoudre ce problème.

Quelqu'un peut-il aider?

Mise à jour: est ici la sortie du jaune:

Cheetah   - 2.4.2.1  - active development (/usr/lib/pymodules/python2.6) 
Django   - 1.2.3  - non-active development (/usr/lib/pymodules/python2.6) 
Django   - 1.2.4  - active 
Fabric   - 0.9.4  - active 
Jinja2   - 2.5.5  - active development (/usr/lib/pymodules/python2.6) 
Logbook   - 0.3   - active development (/usr/local/lib/python2.6/dist-packages/Logbook-0.3-py2.6-linux-x86_64.egg) 
MarkupSafe  - 0.9.2  - active development (/usr/lib/python2.6/dist-packages) 
MySQL-python - 1.2.2  - active development (/usr/lib/pymodules/python2.6) 
PIL    - 1.1.7  - active development (/usr/lib/python2.6/dist-packages/PIL) 
Python   - 2.6.6  - active development (/usr/lib/python2.6/lib-dynload) 
South   - 0.7.3  - active 
boto   - 1.9b   - active development (/usr/lib/pymodules/python2.6) 
distribute  - 0.6.10  - active 
distribute  - 0.6.14  - non-active development (/usr/lib/python2.6/dist-packages) 
django-pagination - 1.0.7  - active 
django-pytest - 0.1.4  - active development (/var/www/environment/XXX/src/django-pytest) 
django-sorting - 0.1   - active 
django-templatetag-sugar - 0.1   - active 
flup   - 1.0.2  - active development (/usr/lib/pymodules/python2.6) 
lxml   - 2.2.8  - active development (/usr/lib/python2.6/dist-packages) 
mercurial  - 1.6.4  - active development (/usr/lib/pymodules/python2.6) 
paramiko  - 1.7.6  - active 
pip    - 0.7.2  - active 
psycopg2  - 2.2.1  - active development (/usr/lib/python2.6/dist-packages) 
py    - 1.3.3  - non-active development (/usr/lib/pymodules/python2.6) 
py    - 1.4.1  - non-active 
py    - 1.4.3  - active 
pycrypto  - 2.3   - active 
pytest   - 2.0.0  - active 
python-amazon-product-api - 0.2.5a1  - active development (/var/www/environment/XXX/src/amazonproduct) 
python-amazon-product-api - 0.2.5a1  - active development (/var/www/environment/XXX/src/amazonproduct) 
python-amazon-product-api - 0.2.5a1  - non-active development (/usr/local/lib/python2.6/dist-packages/python_amazon_product_api-0.2.5a1-py2.6.egg) 
python-amazon-product-api - 0.2.5a1  - non-active development (/usr/local/lib/python2.6/dist-packages/python_amazon_product_api-0.2.5a1-py2.6.egg) 
python-dateutil - 1.4.1  - active development (/usr/lib/pymodules/python2.6) 
setuptools  - 0.6c11  - active development (/usr/lib/python2.6/dist-packages) 
stdeb   - 0.6.0  - active development (/usr/lib/pymodules/python2.6) 
virtualenv  - 1.4.9  - active development (/usr/lib/pymodules/python2.6) 
web.py   - 0.34   - active development (/usr/lib/pymodules/python2.6) 
wsgiref   - 0.1.2  - active development (/usr/lib/python2.6) 
yolk   - 0.4.1  - active 

Mise à jour 2: Mes sys.path s sont:

/var/www/environment/XXX/bin/python -c "import sys; print '\n'.join(sys.path)" 

/var/www/environment/XXX/lib/python2.6/site-packages/distribute-0.6.10-py2.6.egg 
/var/www/environment/XXX/lib/python2.6/site-packages/pip-0.7.2-py2.6.egg 
/var/www/environment/XXX/src/django-pytest 
/var/www/environment/XXX/src/amazonproduct 
/var/www/environment/XXX/lib/python2.6 
/var/www/environment/XXX/lib/python2.6/plat-linux2 
/var/www/environment/XXX/lib/python2.6/lib-tk 
/var/www/environment/XXX/lib/python2.6/lib-old 
/var/www/environment/XXX/lib/python2.6/lib-dynload 
/usr/lib/python2.6 
/usr/lib64/python2.6 
/usr/lib/python2.6/plat-linux2 
/usr/lib/python2.6/lib-tk 
/usr/lib64/python2.6/lib-tk 
/var/www/environment/XXX/lib/python2.6/site-packages 
/usr/local/lib/python2.6/dist-packages/Logbook-0.3-py2.6-linux-x86_64.egg 
/usr/lib/python2.6/dist-packages/PIL 
/usr/local/lib/python2.6/dist-packages/python_amazon_product_api-0.2.5a1-py2.6.egg 
/usr/lib/pymodules/python2.6 
/usr/local/lib/python2.6/site-packages 
/usr/local/lib/python2.6/dist-packages 
/usr/lib/python2.6/dist-packages 

Quand vous faites la même chose avec python manage.py shell j'obtenir la même liste avec l'exception de

/usr/lib64/python2.6 

manquant.

+0

pouvez-vous installer jaune "pip install yolk" à l'intérieur de la virtualenv et ensuite faire jaune - liste et afficher vos résultats? –

+0

@KenCochrane: La liste était trop longue pour un commentaire. Je l'ai ajouté à la question. – basti

+0

donc la sortie jaune montre que vous n'avez qu'un seul MySQL-python installé ce qui est bien, mais il ne répond pas à la question d'origine. Pouvez-vous modifier la question pour ajouter votre sys.path? Aussi est-il une raison pour laquelle vous créez votre virtualenv avec des paquets de site? Si cela n'a pas d'importance essayez de créer un nouveau virtualenv sans paquets de site et voyez si vous avez toujours la même erreur. Ce n'est pas idéal, mais quelque chose à essayer. –

Répondre

0

J'ai simplement supprimé django_pytest de INSTALLED_APPS. Le problème est maintenant disparu. Pas sympa mais ça marche (tm).

1

Votre problème a été causé par l'installation de 2 paquets "distribuer" comme le montre la sortie jaune fournie.

+1

Comment éviter cette situation? – basti

+0

Je pense que la meilleure façon d'éviter de tels conflits est de créer un environnement virtuel avec une option --no-site-packages. –

+0

Essayez 'pip uninstall distribute'. Cela a fonctionné pour moi. –

Questions connexes