4

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

无法为 MySQL 加载 Python 绑定

不幸的是,我不得不重新安装 MySQL,然后,我开始遇到这些问题。我花了最后一个小时试图在谷歌上追踪一些东西,但我什么也做不了。我确保 MySQL 已启动并正常运行。我创建了一个特定于 trac 的新 MySQL 用户。我确保所有的包裹都在那里。没有什么。

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

dpkg -l | grep 蟒蛇

  • libapache2-mod-python
  • libapache2-mod-python-doc
  • libpython2.6
  • libpython3.1
  • Python
  • 蟒蛇中央
  • python-docutils
  • 蟒蛇源氏
  • 蟒蛇成像
  • 蟒蛇lxml
  • 蟒蛇最小
  • python-mysqldb
  • python-pkg-资源
  • python-pybabel
  • python-pygments
  • 蟒蛇罗马
  • 蟒蛇安装工具
  • 蟒蛇颠覆
  • 蟒蛇支持
  • 蟒蛇-tz
  • python2.6
  • python2.6-minimal
  • python3.1
  • python3.1-最小

如果有人对它可能是什么有任何想法,我将永远感激不尽。

4

2 回答 2

1

当 Trac 尝试执行“ import MySQLdb”但它失败时,应该会导致该错误。您确实拥有应该提供该模块的正确软件包,但由于某种原因它失败了。要找出原因,您应该查看 Trac 运行的环境。它是否使用 Python 以外的其他 Python /usr/bin/python2.6?它$PYTHONPATH有一套吗?

您可能还想尝试直接导入 MySQLdb:

/usr/bin/python2.6 -c 'import MySQLdb'

如果可以按预期加载包,那应该没有输出。

最后,这可能不相关,但您知道不再支持 Maverick,对吧?它不会从 Ubuntu 获得任何安全更新或其他支持。

编辑:

python2.6 导入工作正常,所以我们需要仔细查看 trac 环境。一种方法是编辑db/mysql_backend.py文件并插入一些调试信息。(如果这是一个 OS 打包安装,您应该在 下找到该文件/usr/lib/python2.6/dist-packages/trac/;否则,您可能知道将它放在哪里)。让我们尝试改变MySQLConnector.get_supported_schemes()方法,因为我不确定 plain prints 会出现在哪里。

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)
于 2012-07-09T17:46:37.147 回答
0

而不是像保罗建议的那样调用特定的python安装,在你的终端上试试这个:

启动路径的 python 实例

python

看看能不能导入mysqldb

import MySQLdb

还为我们运行:

pip freeze

我们应该mysql-python在输出中看到 a

于 2012-07-09T17:53:00.233 回答