我最近在我的trac安装中遇到以下错误:
无法加载MySQL的Python绑定
不幸的是,我不得不重新安装MySQL,之后,我开始解决这些问题。我花了最后一小时试图跟踪谷歌上的一些东西,但我无法得到任何工作。我确保MySQL正常运行。我创建了一个特定于trac的新MySQL用户。我确保所有的包都在那里。什么都没有。这是我的dkpg(我运行Ubuntu Maverick):
如果有人对这可能有什么想法,我会永远感激。
答案 0 :(得分:1)
当Trac尝试执行“import MySQLdb
”时会出现该错误,但失败了。您确实拥有应该提供该模块的正确软件包,但由于某种原因它失败了。要找出原因,您应该查看Trac运行的环境。它是否使用/usr/bin/python2.6
以外的Python?是否设置了$PYTHONPATH
?
您可能还想尝试直接导入MySQLdb:
/usr/bin/python2.6 -c 'import MySQLdb'
如果可以按预期加载包,那么它应该没有输出。
最后,这可能没有关系,但你知道不再支持Maverick,对吧?它不会从Ubuntu获得任何安全更新或其他支持。
修改:
python2.6导入工作正常,因此我们需要仔细研究trac环境。一种方法是编辑db/mysql_backend.py
文件并插入一些调试信息。 (如果这是一个操作系统打包的安装,你应该在/usr/lib/python2.6/dist-packages/trac/
下找到该文件;否则,你可能知道你把它放在哪里)。我们尝试更改MySQLConnector.get_supported_schemes()
方法,因为我不确定普通print
将出现在哪里。
def get_supported_schemes(self):
if not has_mysqldb:
import sys
self.error = "Cannot load Python bindings for MySQL. sys.path = %r, sys.executable = %r" \
% (sys.path, sys.executable)
yield ('mysql', -1 if self.error else 1)
答案 1 :(得分:0)
而不是像paul建议的那样调用特定的python安装,在你的终端试试这个:
启动路径的python实例
python
看看你是否可以导入mysqldb
import MySQLdb
也为我们跑了一个:
pip freeze
我们应该在输出中看到mysql-python