2012-05-28 47 views
0

mySQL似乎啓動並運行得很好。但是當我嘗試將MySQLdb導入python時,我得到了一個ImportError: ... Expected in: flat namespace。我認爲這與擁有蟒蛇兩個不同的版本(以及兩個不同的目錄,版本相同)當設置mysql數據庫時,「ImportError:... Expected in:flat namespace」

OS做的事:蘋果10.6.8

$ ls /Library/Frameworks/Python.framework/Versions/ 
7.2 Current 

$ which python 
/Library/Frameworks/Python.framework/Versions/Current/bin/python 

$ echo $PATH 
/Library/Frameworks/Python.framework/Versions/Current/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/X11/bin 

$ easy_install MySQL-python 
... 
... 
Using /Library/Frameworks/Python.framework/Versions/7.2/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-macosx-10.5-i386.egg 
... 

$ mysql.server start 
Starting MySQL 
.. SUCCESS! 

$ python manage.py runserver 
... 
... 
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: dlopen(/Library/Frameworks/Python.framework/Versions/7.2/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-macosx-10.5-i386.egg/_mysql.so, 2): Symbol not found: _mysql_affected_rows 
    Referenced from: /Library/Frameworks/Python.framework/Versions/7.2/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-macosx-10.5-i386.egg/_mysql.so 
    Expected in: flat namespace 
in /Library/Frameworks/Python.framework/Versions/7.2/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-macosx-10.5-i386.egg/_mysql.so 

$ python 
Enthought Python Distribution (EPD) free version -- www.enthought.com 
Version: 7.2-2 (32-bit) 

>>> import MySQLdb 
... 
... 
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/7.2/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-macosx-10.5-i386.egg/_mysql.so, 2): Symbol not found: _mysql_affected_rows 
    Referenced from: /Library/Frameworks/Python.framework/Versions/7.2/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-macosx-10.5-i386.egg/_mysql.so 
    Expected in: flat namespace 
in /Library/Frameworks/Python.framework/Versions/7.2/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-macosx-10.5-i386.egg/_mysql.so 

所以除了是新Django和蟒蛇我對於使用終端來說也是新的,我不確定我在看什麼。

但我可以告訴顯而易見的:

  • 我有兩個版本,7.2和電流。
  • 如果我調用python,它會調用'當前'版本。這很有道理,它在$ PATH中。
  • 但是,2.7版本(不是7.2)也在PATH中,我在安裝EDP軟件包時已將其刪除。 ...我不完全瞭解PATH是什麼或者做什麼,所以我不想開始改變東西
  • 在版本7.2中安裝MySQL-python
  • 無法運行服務器,因爲必需的文件isn'噸flat namespace和它在這個地方它被安裝過

是否有某種方式來解開這些路徑(如果這就是問題所在)

預先感謝您

+0

*您沒有*安裝MySQL客戶端庫, 對? –

+0

er ...不是嗎?我想我沒有。你能指點一下嗎?在此先感謝 – Ben

+0

安裝MySQL通常涵蓋,所以我認爲你現在已經擁有了它們。 –

回答

0

嗯.. 。我認爲這與Python的「Current」和「7.2」版本沒有任何關係。

這似乎已經解決了自己做

pip uninstall MySQL-python 
brew uninstall mysql 
brew install mysql --universal 
pip install MySQL-python 

後,我不知道如果--universal作出的性差異或使用PIP安裝,而不是使用easy_install

+0

試過這個,但得到了「 - 配置不完整,發生錯誤!」當試圖安裝--universal版本,但純粹的MySQL沒有問題。 – PhoebeB