2016-12-01 16 views
0

Macos Sierra 10.12.1Python импорта MySQLdb: Библиотека не загружен: libmysqlclient.18.dylib

MySQL 5.7.16

MySQL-питон 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 

Я попытался refered к Python mysqldb: Library not loaded: libmysqlclient.18.dylib как

$ 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 

но все они не работают!

Теперь, как я могу это исправить?

ответ

0

Вы можете использовать пакет как 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)