我正在尝试按照 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/horizon/+question/189051
通过运行此命令安装 MySQL-python
$ tools/with_venv.sh pip install MySQL-python
@ Ken:谢谢。你说得对。但我不明白简易安装和点子命令!我稍后会检查。