在mac上安装MySQL python

在mac上安装MySQL python,python,macos,python-2.7,mysql-python,Python,Macos,Python 2.7,Mysql Python,我正在使用OSX 10.8和PyCharm进行Python开发项目。我已经使用网站上的说明为mac安装了MySQL python 但是,运行项目时会出现以下错误: 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/

我正在使用OSX 10.8和PyCharm进行Python开发项目。我已经使用网站上的说明为mac安装了MySQL python

但是,运行项目时会出现以下错误:

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\u python-1.2.3-py2.7-macosx-10.6-intel.egg-tmp//u 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
/usr/local/bin/python2.7-32/Users/ashishagarwal/Optimus/mashpoto/backend/mashpoto/manage.py测试服务器--addrport 8000
在开发服务器上运行
回溯(最近一次呼叫最后一次):
文件“/Users/ashishagarwal/Optimus/mashpoto/backend/mashpoto/manage.py”,第10行,在
从命令行(sys.argv)执行命令
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site packages/django/core/management/_init__.py”,第453行,从命令行执行
utility.execute()
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site packages/django/core/management/_init__.py”,第392行,在execute中
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site packages/django/core/management/_init__.py”,第272行,在fetch_命令中
klass=加载命令类(应用程序名称,子命令)
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site packages/django/core/management/_init__.py”,第77行,在load_command_类中
模块=导入模块(“%s.management.commands.%s%”(应用程序名称,名称))
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site packages/django/utils/importlib.py”,导入模块第35行
__导入(名称)
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site packages/south/management/commands/_init__.py”,第10行,在
导入django.template.loaders.app_目录
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site packages/django/template/loaders/app_directories.py”,第23行,在
mod=导入模块(应用程序)
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site packages/django/utils/importlib.py”,导入模块第35行
__导入(名称)
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site packages/django/contrib/admin/_init__.py”,第3行,在
从django.contrib.admin.helpers导入操作\u复选框\u名称
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site packages/django/contrib/admin/helpers.py”,第4行,在
从django.contrib.admin.util导入(展平字段集、查找字段、,
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site packages/django/contrib/admin/util.py”,第6行,在
从django.db导入模型
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/_-init____.py”,第40行,在
后端=加载\后端(connection.settings \ dict['ENGINE'])
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/_-init____;.py”,第34行,在__
返回getattr(连接[默认\u DB\u别名],项)
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site packages/django/db/utils.py”,第93行,在__
后端=加载\u后端(db['ENGINE'])
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site packages/django/db/utils.py”,第27行,在load_后端
返回导入_模块('.base',后端_名称)
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site packages/django/utils/importlib.py”,导入模块第35行
__导入(名称)
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site packages/django/db/backends/mysql/base.py”,第17行,在
raise配置不正确(“加载MySQLdb模块时出错:%s”%e)
django.core.exceptions.impropertlyconfigured:加载MySQLdb模块时出错:dlopen(/Users/ashishagarwal/.python-egs/MySQL\u python-1.2.3-py2.7-macosx-10.6-intel.egg-tmp//u MySQL.so,2):未找到符号:\u MySQL\u受影响的行
引用自:/Users/ashishagarwal/.python-eggs/MySQL\u python-1.2.3-py2.7-macosx-10.6-intel.egg-tmp//u MySQL.so
应为:平面命名空间
在/Users/ashishagarwal/.python-eggs/MySQL\u python-1.2.3-py2.7-macosx-10.6-intel.egg-tmp//u MySQL.so中
进程已完成,退出代码为1

您应该首先通过安装MySQL,以使python MySQL在OS X上正常工作

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

确保你有最新版本的Xcode,包括命令行工具。我只是从应用商店下载了2GB更新。我有一个类似的问题,特别是,这修复了它


干杯!

如果您使用python,如:

import mysql.connector

您必须首先下载mysql连接器这里是链接

我很久以前用homebrew安装了mysql,所以当我升级OSX后遇到问题时,我用
brew重新安装再次安装了它mysql@5.7
(我运行了5.7.10)并重新安装了MySQL-python,我希望它能够得到解决。得到了上面提到的错误

它真的帮了我的忙,花了几个小时之后,我不知道该做什么,从源代码和所有东西重建。我尝试了其他用于mysql的python应用程序,但都是一样的


我不知怎的意识到MySQL python构建的客户端版本不对,所以我检查了
/usr/local/opt/MySQL
链接的位置,它就链接到了我7年前通过dmg安装的以前的版本!一旦我删除了该链接,然后运行
brew link MySQL
,然后运行created安装了一个新的virtualenv并从头开始安装了所有的软件包。它终于成功了!

你能给出原因吗?这个软件包是从源代码编译的,需要mysql开发头。当你用自制软件安装
mysql
软件包时,这些软件包也会被安装。你不知道需要多少时间