0

mySQL は問題なく稼働しているようです。しかし、MySQLdb を Python にインポートしようとすると、ImportError: ... Expected in: flat namespace. Pythonに2つの異なるバージョンがあることに関係していると思います(2つの異なるディレクトリ、同じバージョン)

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 と python を初めて使用することに加えて、ターミナルを使用するのも初めてで、何を見ているのか正確にはわかりません。

しかし、私は明白に言うことができます:

  • 7.2 と最新の 2 つのバージョンがあります。
  • Python を呼び出すと、「現在の」バージョンが呼び出されます。それは理にかなっています、それは $PATH にあります。
  • ただし、EDP パッケージをインストールしたときに削除したバージョン 2.7 (7.2 ではない) も PATH にあります。... PATH とは何か、または何をするのかを完全には理解していないので、変更を開始したくありませんでした
  • MySQL-python はバージョン 7.2 でインストールされます
  • 必要なファイルがなく、flat namespaceインストールされた場所にもあるため、サーバーを実行できません

これらのパスを解く方法はありますか (それが問題の場合)

前もって感謝します

4

1 に答える 1

0

ええと... Pythonの「現在」および「7.2」バージョンとは何の関係もないと思います。

やった後、それは自分自身を修正したようです

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

--universal違いが生じたのか、easy_install ではなく pip install を使用したのかはわかりません

于 2012-05-28T08:12:57.027 に答える