数据库
首页 > 数据库> > 无法加载MySQL的Python绑定 – Trac

无法加载MySQL的Python绑定 – Trac

作者:互联网

我最近开始在我的trac安装中收到以下错误:

无法为MySQL加载Python绑定

不幸的是,我不得不重新安装MySQL,之后,我开始解决这些问题.我花了最后一小时试图跟踪谷歌上的一些东西,但我无法得到任何工作.我确保MySQL正常运行.我创建了一个特定于trac的新MySQL用户.我确保所有的包都在那里.没有.

这是我的dkpg(我运行Ubuntu Maverick):

dpkg -l | grep python

> libapache2-mod-python
> libapache2-mod-python-doc
> libpython2.6
> libpython3.1
> python
> python-central
> python-docutils
> python-genshi
> python-imaging
> python-lxml
> python-minimal
> python-mysqldb
> python-pkg-resources
> python-pybabel
> python-pygments
> python-roman
> python-setuptools
> python-subversion
> python-support
> python-tz
> python2.6
> python2.6-minimal
> python3.1
> python3.1-minimal

如果有人对它可能有什么想法,我会永远感激.

解决方法:

当Trac尝试“导入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()方法,因为我不确定将在哪里显示普通打印件.

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)

标签:python,mysql,trac
来源: https://codeday.me/bug/20190709/1414623.html