Tôi đã tải xuống và làm theo hướng dẫn cài đặt cho MySQL 5.5.8 (http://dev.mysql.com/downloads/mysql/) và cho plugin python MySQLdb. (http://sourceforge.net/projects/mysql-python/)Lỗi nhập khẩu MySQLdb lỗi - Mac 10.6
Khi tôi cố gắng để nhập khẩu MySQLdb đến một thiết bị đầu cuối python, tôi nhận được báo lỗi dưới đây:
Safira:~ yanigisawa$ python --version
Python 2.6.1
Safira:~ yanigisawa$ python -c "import MySQLdb"
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "build/bdist.macosx-10.6-universal/egg/MySQLdb/__init__.py", line 19, in <module>
File "build/bdist.macosx-10.6-universal/egg/_mysql.py", line 7, in <module>
File "build/bdist.macosx-10.6-universal/egg/_mysql.py", line 6, in __bootstrap__
ImportError: dlopen(/Users/yanigisawa/.python-eggs/MySQL_python-1.2.3-py2.6-macosx-10.6-universal.egg-tmp/_mysql.so, 2): Library not loaded: libmysqlclient.16.dylib
Referenced from: /Users/yanigisawa/.python-eggs/MySQL_python-1.2.3-py2.6-macosx-10.6-universal.egg-tmp/_mysql.so
Reason: image not found
Safira:~ yanigisawa$
Tôi thấy câu hỏi 4559699 trên stack overflow, và theo các hướng dẫn có:
Safira:~ yanigisawa$ echo $DYLD_LIBRARY_PATH
/usr/local/mysql/lib
Safira:~ yanigisawa$ ls -l /usr/local/mysql/lib
total 363224
-rwxr-xr-x 1 root wheel 3787328 Jan 18 19:41 libmysqlclient.16.dylib
-rw-r--r-- 1 root wheel 10035336 Dec 3 13:26 libmysqlclient.a
lrwxr-xr-x 1 root wheel 23 Jan 14 22:01 libmysqlclient.dylib -> libmysqlclient.16.dylib
lrwxr-xr-x 1 root wheel 20 Jan 14 22:01 libmysqlclient_r.16.dylib -> libmysqlclient.dylib
lrwxr-xr-x 1 root wheel 16 Jan 14 22:01 libmysqlclient_r.a -> libmysqlclient.a
lrwxr-xr-x 1 root wheel 20 Jan 14 22:01 libmysqlclient_r.dylib -> libmysqlclient.dylib
-rw-r--r-- 1 root wheel 88033760 Dec 3 13:22 libmysqld-debug.a
-rw-r--r-- 1 root wheel 84075304 Dec 3 13:26 libmysqld.a
-rw-r--r-- 1 root wheel 8472 Dec 3 13:26 libmysqlservices.a
drwxr-xr-x 13 root wheel 442 Dec 3 13:53 plugin
Safira:~ yanigisawa$ md5 /usr/local/mysql/lib/libmysqlclient.16.dylib
MD5 (/usr/local/mysql/lib/libmysqlclient.16.dylib) = b8a78a93183720021b9dbe9ddad57111
Safira:~ yanigisawa$
Và sau khi làm sạch tất cả các tệp trứng trăn và xây dựng lại, tôi vẫn gặp lỗi tương tự. Sau đó, tôi tìm thấy lỗi 59006 (http://bugs.mysql.com/bug.php?id=59006) trong MySQL 5.5.8 ảnh hưởng đến Mac 10.6. Tôi đã thử các công việc xung quanh được liệt kê ở đó, làm sạch trứng và xây dựng lại, và tôi vẫn nhận được lỗi này.
Có một vấn đề khác cho vấn đề này cụ thể với python không? Tôi có thiếu cái gì khác không?
EDIT: Thêm đầu ra từ lệnh otool:
Safira:~ yanigisawa$ otool -L /Users/yanigisawa/.python-eggs/MySQL_python-1.2.3-py2.6-macosx-10.6-universal.egg-tmp/_mysql.so
/Users/yanigisawa/.python-eggs/MySQL_python-1.2.3-py2.6-macosx-10.6-universal.egg-tmp/_mysql.so:
libmysqlclient.16.dylib (compatibility version 16.0.0, current version 16.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.1)
Safira:~ yanigisawa$ otool -DX /usr/local/mysql/lib/libmysqlclient.16.dylib
/usr/local/mysql/lib/libmysqlclient.16.dylib
Safira:~ yanigisawa$
Tôi vẫn còn mới đối với Mac OS. (khoảng 2 tháng trong bây giờ) Tôi đã hy vọng để có được một "thử nghiệm bằng lửa" để nói chuyện và nhận được tất cả mọi thứ làm việc nhiều hơn hoặc ít hơn theo cách thủ công. Tuy nhiên, nếu tôi không thể làm việc này, tôi sẽ sử dụng tùy chọn cổng mac. Cám ơn vì sự gợi ý. – yanigisawa
Giải pháp MacPorts cuối cùng đã hoạt động. Nó đã cài đặt python 2.6.6 bên cạnh cài đặt 2.6.1 của tôi, và/usr/bin/python vẫn trỏ đến 2.6.1, điều này gây ra lỗi giống như trên xảy ra với các script cgi apache của tôi. Tôi đã phải thêm một liên kết tượng trưng vào phiên bản 2.6.6 và mọi thứ bắt đầu hoạt động tốt. Cảm ơn. – yanigisawa
Rất vui khi được nghe. Nhưng hãy cẩn thận: nói chung, đó là một ý tưởng rất xấu để ghi đè lên bất cứ điều gì trong '/ usr', khác với'/usr/local'. Đó là tất cả được quản lý bởi Apple như là một phần của OS X. Tôi không chắc chắn nếu bạn có nghĩa là bạn ghi đè '/ usr/bin/python'. Cách tốt hơn để xử lý nhiều phiên bản là sửa đổi các tệp khởi động shell để đặt '/ opt/local/Library/Frameworks/Python.framework/Phiên bản/2.6/bin' ở phía trước' $ PATH' hoặc sử dụng tham chiếu tuyệt đối khi giới thiệu sang Python, '/opt/local/bin/python2.6 '. –