私はOSX 10.8とPyCharmを使用してPython開発プロジェクトに取り組んでいます。Webサイトの指示に従ってMacにMySQL-pythonをインストールしました。
http://blog.infoentropy.com/MySQL-python_EnvironmentError_mysql_config_not_found
ただし、プロジェクトを実行するとこのエラーが発生します。
Django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: dlopen(/Users/ashishagarwal/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6-intel.Egg-tmp/_mysql.so, 2): Symbol not found: _mysql_affected_rows
Referenced from: /Users/ashishagarwal/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6-intel.Egg-tmp/_mysql.so
Expected in: flat namespace
in /Users/ashishagarwal/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6-intel.Egg-tmp/_mysql.so
上記のファイルは、エラーが次の場所に存在することを示しています-/Users/ashishagarwal/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6-intel.Egg-tmp/_mysql.so
エラーメッセージ全体は-
/usr/local/bin/python2.7-32 /Users/ashishagarwal/Optimus/MashPotato/backend/mashpotato/manage.py testserver --addrport 8000
Running on development server
Traceback (most recent call last):
File "/Users/ashishagarwal/Optimus/MashPotato/backend/mashpotato/manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django/core/management/__init__.py", line 453, in execute_from_command_line
utility.execute()
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django/core/management/__init__.py", line 392, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django/core/management/__init__.py", line 272, in fetch_command
klass = load_command_class(app_name, subcommand)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django/core/management/__init__.py", line 77, in load_command_class
module = import_module('%s.management.commands.%s' % (app_name, name))
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/south/management/commands/__init__.py", line 10, in <module>
import Django.template.loaders.app_directories
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django/template/loaders/app_directories.py", line 23, in <module>
mod = import_module(app)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django/contrib/admin/__init__.py", line 3, in <module>
from Django.contrib.admin.helpers import ACTION_CHECKBOX_NAME
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django/contrib/admin/helpers.py", line 4, in <module>
from Django.contrib.admin.util import (flatten_fieldsets, lookup_field,
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django/contrib/admin/util.py", line 6, in <module>
from Django.db import models
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django/db/__init__.py", line 40, in <module>
backend = load_backend(connection.settings_dict['ENGINE'])
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django/db/__init__.py", line 34, in __getattr__
return getattr(connections[DEFAULT_DB_ALIAS], item)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django/db/utils.py", line 93, in __getitem__
backend = load_backend(db['ENGINE'])
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django/db/utils.py", line 27, in load_backend
return import_module('.base', backend_name)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django/db/backends/mysql/base.py", line 17, in <module>
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
Django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: dlopen(/Users/ashishagarwal/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6-intel.Egg-tmp/_mysql.so, 2): Symbol not found: _mysql_affected_rows
Referenced from: /Users/ashishagarwal/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6-intel.Egg-tmp/_mysql.so
Expected in: flat namespace
in /Users/ashishagarwal/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6-intel.Egg-tmp/_mysql.so
Process finished with exit code 1
OS Xでpython-mysqlを適切に動作させるには、最初に Homebrew を使用してMySQLをインストールする必要があります。
pip uninstall MySQL-python
brew install mysql
pip install MySQL-python
コマンドラインツールを含むXcodeの最新バージョンを使用していることを確認してください。 App Storeから2GBの更新をダウンロードしただけです。同様の問題、具体的には this があり、それが修正されました。
乾杯!
私はずっと昔にhomebrewでmysqlをインストールしていたので、OSXをアップグレードした後にトラブルに遭遇したとき、brew reinstall [email protected]
(私は5.7.10を実行しました)MySQL-pythonを再インストールし、解決されると予想しました。上記のエラーが発生しました。
それは本当に私の頭にあり、それに数時間を費やした後、私は何をすべきか分からず、ソースやすべてから再構築しました。 mysql用の他のpythonアプリを試しましたが、同じことでした。
どういうわけか、MySQL-pythonで構築されているクライアントが間違ったバージョンに対応していることに気づいたので、/usr/local/opt/mysql
はリンクされていましたが、7年前のようにdmgでインストールした以前のバージョンにリンクされていました。リンクを削除してからbrew link mysql
その後、新しいvirtualenvを作成し、すべてのパッケージを最初からインストールし、最終的に機能しました。