J'essaie d'installer OpenStack Dashboard en suivant ce guide à partir de git: http://wiki.openstack.org/OpenStackDashboard
Mais quand j'exécute cette commande pour synchroniser la base de données:
$ tools/with_venv.sh openstack-dashboard/manage.py syncdb
Il retourne que:
File "/home/user1/horizon/.venv/local/lib/python2.7/sitepackages/Django/db/backends/mysql> /base.py", line 14, in <module>
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
Django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb
J'ai installé le paquet " python-mysqldb " plusieurs fois, mais cette erreur a quand même été générée. Quand je cours:
>>> importer MySQLdb
dans python interprète, ça va!
Et j'ai essayé d'installer via easy_install, mais MySQL-python est installé:
$ Sudo easy_install MySQL-python
Recherche de MySQL-python
Meilleure correspondance: MySQL-python 1.2.3 MySQL-python 1.2.3 est déjà la version active de easy-install.pth
Utilisation de /usr/lib/pymodules/python2.7
Dépendances de traitement pour MySQL-python
Dépendances de traitement terminées pour MySQL-python
Voici le contenu de tools/with_venv.sh
#!/bin/bash
TOOLS=`dirname $0`
VENV=$TOOLS/../.venv
source $VENV/bin/activate && $@
Quand je lance: tools/with_venv.sh , il ne retourne rien.
Quel est le problème dans mon cas?
J'ai aussi posé cette question dans le tableau de bord. Dieu merci, ils m'aident à résoudre ce problème. https://answers.launchpad.net/horizon/+question/189051
En exécutant cette commande pour installer MySQL-python
$ tools/with_venv.sh pip install MySQL-python
@ Ken: Merci. Vous avez raison. Mais je ne comprends pas quelle est la différence entre easy_install et commande pip ! Je vérifierai plus tard.
Avec virtualenv, vous avez votre propre environnement spécifiquement pour cette application. Si vous utilisez --no-site-packages
, les modules système installés en dehors de la bibliothèque standard ne seront pas utilisés.
La solution consiste à activer l'environnement virtuel et à l'installer à cet endroit. Essayez quelque chose comme ça:
cd (project directory)
source bin/activate
easy_install MySQL-python
Ce faisant, vous installerez MySQLdb dans le propre environnement virtuel de ce projet, qui sera séparé de l’installation à l’échelle du système. Virtualenv a pour avantage de vous permettre de conserver plusieurs versions de logiciels exactement où vous en avez besoin.