尝试加载 OpenStack 仪表板时没有名为 MySQLdb 的模块

尝试加载 OpenStack 仪表板时没有名为 MySQLdb 的模块

我正在尝试按照 git 中的指南安装 OpenStack Dashboard: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 安装,但是安装了 MySQL-python:

$ sudo easy_install MySQL-python

搜索 MySQL-python

最佳匹配:MySQL-python 1.2.3 MySQL-python 1.2.3 已经是 easy-install.pth 中的活动版本

使用 /usr/lib/pymodules/python2.7

处理 MySQL-python 的依赖项

已完成 MySQL-python 依赖项处理

以下是 tools/with_venv.sh 的内容

#!/bin/bash
TOOLS=`dirname $0`
VENV=$TOOLS/../.venv
source $VENV/bin/activate && $@

当我跑步时:工具/with_venv.sh它什么也没有返回。

我的情况有什么问题?

答案1

使用 virtualenv,您可以拥有专门用于该应用程序的自己的环境。如果您使用--no-site-packages,它将不会使用标准库之外安装的系统模块。

解决方案是激活虚拟环境并在那里安装它们。尝试以下操作:

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

这样,您将在该项目自己的虚拟环境中安装 MySQLdb,它将与系统范围的安装分开。virtualenv 的优点是它允许您将多个版本的软件包含在您需要的确切位置。

答案2

我也在 launchpad 上问过这个问题。感谢上帝,他们帮我解决了这个问题。 https://answers.launchpad.net/horizo​​n/+question/189051

通过运行此命令安装 MySQL-python

$ tools/with_venv.sh pip install MySQL-python

@ Ken:谢谢。你说得对。但我不明白简易安装点子命令!我稍后会检查。

相关内容