2011-10-24 79 views
3

我試圖在Ubuntu中設置環境(從 MS-Windows轉換)。它當然有Python 2.6。 我從'Ubuntu軟件中心'設置了MySQL 5512和MySQLdb。Ubuntu中的Python-MySQLdb錯誤

import dabo 
    import MySQLdb 

工作正常。沒有錯誤。

但是在建立連接時,是說在MySQLdb & _mysql的版本中存在不匹配。

ImportError: this is MySQLdb version (1, 2, 3, 'gamma', 1), but _mysql 
    is version (1, 2, 2, 'final', 0) 

我該如何解決這個問題?

完全回溯---->

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "dabovmd/hotel.py", line 4, in <module> 
    empconn = dabo.db.dConnection(empci) 
    File "dabo/db/dConnection.py", line 32, in __init__ 
    self._connection = self._openConnection(**kwargs) 
    File "dabo/db/dConnection.py", line 80, in _openConnection 
    return 
    self._connectInfo.getConnection(forceCreate=self._forceCreate, **kwargs) 
    File "dabo/db/dConnectInfo.py", line 105, in getConnection 
    return self._backendObject.getConnection(self, **kwargs) 
    File "dabo/db/dbMySQL.py", line 25, in getConnection 
    import MySQLdb as dbapi 
    File "/media/pyth/python26/Lib/site-packages/MySQLdb/__init__.py", 
    line 23, in <module> 
    (version_info, _mysql.version_info)) 
    ImportError: this is MySQLdb version (1, 2, 3, 'gamma', 1), but _mysql 
    is version (1, 2, 2, 'final', 0) 

由於提前,

維尼特

+0

從「Ubuntu軟件中心」卸載後,我試着用單獨安裝MySQL-python的1.2.2和1.2.3它會拋出一個定位'mysql_config'文件的錯誤。 其實這個文件與setup.cfg一起出現 我該如何解決這個問題? – Vineet

回答

1

這似乎是你的MySQL服務器和你的Python-MySQLdb的版本不匹配。

您使用的是哪個版本的Ubuntu? (如果你最近轉過來,然後嘗試使用Ubuntu 11.04)。

解決問題的最簡單方法是將您的ubuntu更新至至少11.04,然後安裝匹配版本的mysql-server和python-mysqldb。

我使用Ubuntu 11.04,我的mysql服務器版本是5.1.54-1ubuntu4,我的python-mysqldb版本是1.2.2-10build2。

希望這有助於

+0

謝謝你的回覆Unni。我會嘗試升級Ubuntu,MySQL,MySQLdb。我認爲這可能需要很長時間來提升。我會在這裏回覆結果。 – Vineet

1

這可能不適合您的需求,但我發現MySQL Connector/Python是非常非常容易設置比MySQLdb的。它完全用Python實現,所以它不關心C接口庫。

該解決方案有幾個缺點。它應該會更慢。更重要的是,對於你的情況,我對Dabo一無所知,所以我不知道是否有可能在不同的MySQL界面中進行分類。

+0

@ mtrw,謝謝你的回答。在DABO中,MySQLdb是強制性的。順便說一下,對於面向數據庫的應用程序,DABO是Python中的EXCELLENT包。您可以使用它(桌面框架)或「bizobj」庫以及您選擇的其他框架。請參閱http://dabodev.com/ – Vineet

0

請不要做什麼上面已經建議...

在MySQLdb的文件夾中使用以下命令:

sudo apt-get install libmysqlclient-dev 
sudo apt-get install python-dev 
sudo python setup.py install 
+2

我會幫助澄清上面提出的建議,以及爲什麼不這樣做。 – showdev

1

似乎每個apt-get和PIP安裝自己的版本的圖書館。 嘗試用sudo apt-get remove python-mysqldb刪除系統MySQL和 你應該有這樣的事情:

Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: python-mysqldb 0 upgraded, 0 newly installed, 1 to remove and 3 not upgraded. After this operation, 196 kB disk space will be freed. Do you want to continue? [Y/n] y (Reading database ... 109333 files and directories currently installed.) Removing python-mysqldb (1.2.3-2ubuntu1) ...