简体   繁体   English

在mac上安装MySQL-python

[英]Installing MySQL-python on mac

I am using OSX 10.8 and PyCharm to work on a Python development project. 我正在使用OSX 10.8和PyCharm来处理Python开发项目。 I have installed MySQL-python for the mac using the instructions on the website 我已经使用网站上的说明为mac安装了MySQL-python

http://blog.infoentropy.com/MySQL-python_EnvironmentError_mysql_config_not_found http://blog.infoentropy.com/MySQL-python_EnvironmentError_mysql_config_not_found

However, running the project gives me this error: 但是,运行该项目会给我这个错误:

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

The file mentioned int the error exists at the location - /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

The entire error message is - 整个错误消息是 -

/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

You should install MySQL through Homebrew first, to get python-mysql work properly on OS X. 你应该首先通过Homebrew安装MySQL,以使python-mysql在OS X上正常工作。

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

Make sure you have the most recent version of Xcode including Command Line Tools. 确保您拥有最新版本的Xcode,包括命令行工具。 I simply downloaded the 2GB update from the app store. 我只是从应用程序商店下载了2GB更新。 I had a similar problem, specifically this , and that fixed it. 我有一个类似的问题,特别是这个 ,并修复它。

Cheers! 干杯!

I installed mysql a long time ago with homebrew so when I ran into trouble now after upgrading OSX I reinstalled it again with brew reinstall mysql@5.7 (I ran 5.7.10) and reinstalled MySQL-python I expected it to be resolved. 很久以前我用自制软件安装了mysql,所以当我在升级OSX后遇到麻烦后我再次使用brew reinstall mysql@5.7重新安装它(我运行5.7.10)并重新安装了MySQL-python我希望它能够得到解决。 Got the error mentioned above. 得到了上面提到的错误。

It really did my head in and after spending several hours on it I had no idea what to do, rebuilt from source and everything. 它真的很好,我花了几个小时就完成了它,我不知道该做什么,从源头和一切都重建。 Tried other python apps for mysql but it was the same thing. 试过mysql的其他python应用程序,但它是一样的。

I somehow realised that the client being built by MySQL-python was against the wrong version so I checked where the /usr/local/opt/mysql was linked to and there it was, it was linked to a previous version which I had installed via dmg like 7 years ago! 我以某种方式意识到由MySQL-python构建的客户端是针对错误的版本所以我检查了/usr/local/opt/mysql链接到的位置,并且它是,它被链接到我之前安装的先前版本dmg就像7年前一样! Once I removed that link and then ran brew link mysql and then created a new virtualenv and installed all the packages from scratch it finally worked! 一旦我删除了该链接然后运行brew link mysql ,然后创建了一个新的virtualenv并从头开始安装所有软件包它终于工作了!

if you use python like: 如果你使用python像:

import mysql.connector

you have to download mysql Connector first here is the link link 你必须先下载mysql Connector这里是链接链接

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM