webentwicklung-frage-antwort-db.com.de

Kein Modul namens MySQLdb, wenn versucht wird, das OpenStack-Dashboard zu laden

Ich versuche, OpenStack Dashboard anhand dieser Anleitung von git aus zu installieren: http://wiki.openstack.org/OpenStackDashboard

Aber wenn ich diesen Befehl ausführen, um die Datenbank zu synchronisieren:

$ tools/with_venv.sh openstack-dashboard/manage.py syncdb

Es gibt Folgendes zurück:

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

Ich habe das Paket " python-mysqldb " mehrmals installiert, aber es hat immer noch diesen Fehler ausgelöst. Wenn ich renne:

>>> MySQLdb importieren

in python Interpreter ist es in Ordnung!

Und ich habe versucht, über easy_install zu installieren, aber MySQL-Python ist installiert:

$ Sudo easy_install MySQL-python

Suche nach MySQL-Python

Beste Übereinstimmung: MySQL-Python 1.2.3 MySQL-Python 1.2.3 ist bereits die aktive Version in easy-install.pth

Verwenden von /usr/lib/pymodules/python2.7

Verarbeitungsabhängigkeiten für MySQL-Python

Verarbeitungsabhängigkeiten für MySQL-Python wurden beendet

Hier ist der Inhalt von tools/with_venv.sh

#!/bin/bash
TOOLS=`dirname $0`
VENV=$TOOLS/../.venv
source $VENV/bin/activate && [email protected]

Beim Ausführen von: tools/with_venv.sh wird nichts zurückgegeben.

Was ist los in meinem Fall?

1
neo0

Diese Frage habe ich auch im Launchpad gestellt. Gott sei Dank helfen sie mir, dieses Problem zu lösen. https://answers.launchpad.net/horizon/+question/189051

Führen Sie diesen Befehl aus, um MySQL-Python zu installieren

$ tools/with_venv.sh pip install MySQL-python

@ Ken: Danke. Du hast recht. Aber ich verstehe nicht, was der Unterschied zwischen easy_install und pip ist ! Ich werde es später überprüfen.

0
neo0

Mit virtualenv haben Sie Ihre eigene Umgebung speziell für diese Anwendung. Wenn Sie --no-site-packages verwenden, werden keine Systemmodule verwendet, die außerhalb der Standardbibliothek installiert sind.

Die Lösung besteht darin, die virtuelle Umgebung zu aktivieren und dort zu installieren. Versuchen Sie so etwas:

cd (project directory)
source bin/activate
easy_install MySQL-python

Auf diese Weise installieren Sie MySQLdb in der eigenen virtuellen Umgebung des Projekts und es wird von der systemweiten Installation getrennt. Der Vorteil von virtualenv besteht darin, dass Sie mehrere Softwareversionen genau dort aufbewahren können, wo Sie sie benötigen.

3
Ken Kinder