Я пытаюсь установить Панель инструментов OpenStack после этого руководства от мерзавца: http://wiki.openstack.org/OpenStackDashboard
Но когда я выполняю эту команду для синхронизации базы данных:
$ tools/with_venv.sh openstack-dashboard/manage.py syncdb
Это возвращает это:
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
Я устанавливал пакет "python-mysqldb" несколько раз, но он все еще повысил эту ошибку. Когда я работаю:
>>> импортируют MySQLdb
в интерпретаторе Python это прекрасно!
И я пытался установить через easy_install, но Python MySQL установлен:
$ sudo easy_install MySQL-python
Поиск Python MySQL
Лучшее соответствие: Python MySQL 1.2.3 Python MySQL 1.2.3 уже является активной версией в легком-install.pth
Используя/usr/lib/pymodules/python2.7
Обработка зависимостей для Python MySQL
Законченные зависимости от обработки для Python MySQL
Вот содержание tools/with_venv.sh
#!/bin/bash
TOOLS=`dirname $0`
VENV=$TOOLS/../.venv
source $VENV/bin/activate && $@
Когда я работаю: tools/with_venv.sh это ничего не возвращает.
Что случилось в моем случае?
С помощью virtualenv у вас есть собственная среда специально для этого приложения. Если вы используете --no-site-packages
, он не будет использовать системные модули, установленные за пределами стандартной библиотеки.
Решение состоит в том, чтобы активировать виртуальную среду и установить их там. Попробуйте что-то вроде этого:
cd (project directory)
source bin/activate
easy_install MySQL-python
При этом вы установите MySQLdb внутри собственной виртуальной среды этого проекта, и она будет отдельной от общесистемной установки. Преимущество virtualenv заключается в том, что он позволяет хранить несколько версий программного обеспечения именно там, где они вам нужны.
Я тоже задавал этот вопрос в панели запуска. Слава Богу, они помогают мне решить эту проблему. https://answers.launchpad.net/horizon/+question/189051
Запустив эту команду для установки MySQL-python
$ tools/with_venv.sh pip install MySQL-python
@ Ken: Спасибо вы. Ты прав. Но я не понимаю, в чем разница между командами easy_install и pip ! Я проверю это позже.