2012-07-09 42 views
4

我最近開始越來越在我的trac以下錯誤安裝:無法加載Python綁定的MySQL - Trac的

無法加載Python綁定的MySQL

我,不幸的是,不得不重新安裝MySQL和,後來,我開始收到這些問題。我花了最後一小時試圖追蹤谷歌上的某些事情,但我無法得到任何工作。我確信MySQL已經正常運行。我創建了一個特定於trac的新MySQL用戶。我確信所有的包都在那裏。沒有。

這裏是我的dkpg(我運行Ubuntu的小牛):

的dpkg -l | grep的蟒

  • 中的libapache2-MOD-蟒
  • 中的libapache2-MOD-蟒-doc的
  • libpython2.6
  • libpython3.1
  • 蟒中央
  • python- docutils
  • python-genshi
  • python-成像
  • 蟒-LXML
  • 蟒-最小
  • 蟒-MySQLdb的
  • 蟒-PKG-資源
  • 蟒-pybabel
  • 蟒-Pygments來做
  • 蟒羅馬
  • python- setuptools
  • python-subversion
  • python-su pport
  • 蟒蛇-TZ
  • python2.6的
  • python2.6的,最小的
  • python3.1
  • python3.1,最小

如果任何人有任何想法,以什麼可能會,我會永遠感激。

回答

1

當Trac嘗試執行「import MySQLdb」但該操作失敗時應該會出現該錯誤。你確實有適當的軟件包,應該提供該模塊,但由於某種原因,它沒有成功。爲了找出原因,你應該看看Trac運行的環境。它是否使用/usr/bin/python2.6以外的Python?它是否有$PYTHONPATH集?

您也可以嘗試直接導入MySQLdb的:

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

這應該沒有輸出是否如預期般的包可以被加載。

最後,這可能沒有關係,但你知道小牛隊不再支持,對吧?它不會從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) 
+0

我沒有看到一個mysql-python,其實。我會適當更新我的服務器。 – 2012-07-13 04:16:24

+0

此外,該命令沒有任何輸入,所以它看起來像加載正確。 – 2012-07-13 04:19:08

+0

增加了一些調試線索。 – 2012-07-13 15:03:56

0

,而不是調用特定的Python安裝像保羅是在暗示,試試這個在您的終端:

發射路徑的Python實例

python 

看到,如果你可以導入MySQLdb的

import MySQLdb 

也跑我們一個:

pip freeze 

,我們應該在輸出

+0

進口沒有產生任何錯誤或任何輸出,所以我會假設它都很好。 PIP凍結遞給我: 警告:TracAccountManager == 0.4dev-r11350 通天== 0.9.4 元史== 0.6 的MySQL的Python 1.2.2 == PIL 1.1 ==找不到svn的位置。 7 Pygments來做== 1.3.1 Trac的== 0.12 ## FIXME:找不到SVN地址在此包dependency_links: TracAccountManager == 0.4dev-r11350 TracGit == 0.12.0.5dev 分發== 0.6 .14 docutils == 0.6 lxml == 2.2.6 mod-python == 3.3.1 pytz == 2010b wsgiref == 0.1.2 難道是TracAccountManager? – 2012-07-13 04:12:12

+0

看來,如果你可以加載MySQLdb比那不是真正的問題。你有沒有嘗試備份你的數據庫並重新安裝trac?它可能是編譯/設置時的trac,到以前版本的python-mysql綁定的硬鏈接,當你卸載了它的引用時,並且因爲你沒有重新安裝trac,它不知道新安裝的mysql ? (有點猜測,但這將是我的下一步) – 2012-07-13 13:08:53

+0

這幾乎是我的遊戲計劃。我甚至在我將任何東西放在這裏之前備份了db,以防萬一我無法解決問題,並且不得不重新安裝trac。 – 2012-07-13 14:11:42