【问题标题】:Python import MySQLdb: Library not loaded: libmysqlclient.18.dylibPython导入MySQLdb:库未加载:libmysqlclient.18.dylib
【发布时间】:2017-04-15 19:07:18
【问题描述】:

macOS Sierra 10.12.1

MySQL 5.7.16

MySQL-python 1.2.5

Python 2.7

========================================

当我

    import MySQLdb

显示错误如下

    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "build/bdist.macosx-10.6-intel/egg/MySQLdb/__init__.py", line 19, in <module>
      File "build/bdist.macosx-10.6-intel/egg/_mysql.py", line 7, in <module>
      File "build/bdist.macosx-10.6-intel/egg/_mysql.py", line 6, in __bootstrap__
    ImportError: dlopen(/Users/aldirc/.python-eggs/MySQL_python-1.2.5-py2.7-macosx-10.6-intel.egg-tmp/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib
      Referenced from: /Users/aldirc/.python-eggs/MySQL_python-1.2.5-py2.7-macosx-10.6-intel.egg-tmp/_mysql.so
      Reason: image not found   

我试过参考Python mysqldb: Library not loaded: libmysqlclient.18.dyliblike

    $ sudo install_name_tool -change libmysqlclient.18.dylib  /usr/local/mysql-5.7.16-osx10.11-x86_64/lib/libmysqlclient.20.dylib  /Users/aldirc/Downloads/MySQL-python-1.2.5/build/lib.macosx-10.6-intel-2.7/_mysql.so

还有

    $ sudo install_name_tool -change libmysqlclient.18.dylib  /usr/local/mysql-5.7.16-osx10.11-x86_64/lib/libmysqlclient.20.dylib  /Users/aldirc/.python-eggs/MySQL_python-1.2.5-py2.7-macosx-10.6-intel.egg-tmp/_mysql.so

还有

    $ sudo ln -s /usr/local/mysql-5.7.16-osx10.11-x86_64/lib/libmysqlclient.20.dylib /usr/lib/libmysqlclient.18.dylib

但它们都不起作用!

现在我该如何解决?

【问题讨论】:

    标签: python mysql macos mysql-python


    【解决方案1】:

    你可以改用 pymysql 或 sqlalchemy 之类的包

    使用 pymysql

    import pymysql.cursors
    mysql_connection = pymysql.connect(host=hostname,
                             user=username,
                             password=password,
                             db=database,
                             charset='utf8mb4',
                             cursorclass=pymysql.cursors.DictCursor)
    

    使用 SqlAlchemy

    import sqlalchemy 
    from sqlalchemy import create_engine
    
    sql_connection = 'mysql+mysqldb://'+str(user)+':'+str(password)+'@'+str(host)+'/'+str(database)+'?charset=utf8mb4'
    mysql_connection = create_engine(sql_connection, echo=False, pool_recycle = 3600,pool_size=1000)
    

    【讨论】:

      猜你喜欢
      • 2011-09-17
      • 1970-01-01
      • 2012-05-20
      • 1970-01-01
      • 2016-02-19
      • 2016-01-05
      • 1970-01-01
      • 2020-01-25
      • 2013-10-23
      相关资源
      最近更新 更多