Cập nhật cho những người sử dụng Python3:
Bạn chỉ cần sử dụng conda install mysqlclient
để cài đặt các thư viện cần thiết để sử dụng MySQLdb vì nó hiện đang tồn tại. Câu hỏi SO sau đây là một manh mối hữu ích: Python 3 ImportError: Không có mô-đun nào có tên 'ConfigParser' . Cài đặt mysqlclient sẽ cài đặt mysqlclient, mysql-connector và llvmdev (ít nhất, nó đã cài đặt 3 thư viện này trên máy của tôi).
Đây là câu chuyện về kinh nghiệm lan man của tôi với vấn đề này. Rất thích xem nó được chỉnh sửa hoặc tổng quát nếu bạn có kinh nghiệm tốt hơn về vấn đề này ... hãy áp dụng một chút phép thuật SO đó.
Lưu ý: Nhận xét trong đoạn tiếp theo áp dụng cho Snow Leopard, nhưng không áp dụng cho Lion, có vẻ như yêu cầu MySQL 64-bit
Trước tiên, tác giả (vẫn là?) Của MySQLdb nói ở đây rằng một trong những vấn đề nguy hiểm nhất là OS X được cài đặt với phiên bản Python 32 bit, nhưng hầu hết các joes trung bình (bao gồm cả tôi) có thể nhảy sang cài đặt phiên bản 64 bit của MySQL. Di chuyển xấu ... hãy gỡ bỏ phiên bản 64 bit nếu bạn đã cài đặt nó (hướng dẫn về tác vụ khó xử này có trên SO tại đây ), sau đó tải xuống và cài đặt phiên bản 32 bit (gói tại đây )
Có rất nhiều bước về cách xây dựng và cài đặt các thư viện MySQLdb. Chúng thường có những khác biệt tinh tế. Điều này dường như phổ biến nhất đối với tôi và cung cấp giải pháp hiệu quả. Tôi đã tái tạo nó với một vài chỉnh sửa bên dưới
Bước 0:
Trước khi bắt đầu, tôi giả sử rằng bạn đã cài đặt MySQL, Python và GCC trên mac.
Bước 1:
Tải xuống bộ điều hợp MySQL cho Python mới nhất từ SourceForge.
Bước 2:
Giải nén gói đã tải xuống của bạn:
tar xzvf MySQL-python-1.2.2.tar.gz
Bước 3:
Bên trong thư mục, làm sạch gói:
sudo python setup.py clean
COUPLE OF EXTRA BƯỚC, (từ nhận xét này )
Bước 3b:
Xóa mọi thứ trong thư mục MySQL-python-1.2.2 / build / * của bạn - không tin tưởng "python setup.py clean" sẽ làm điều đó cho bạn
Bước 3c:
Xóa quả trứng trong Người dùng / $ USER / .python-egg
Bước 4:
Ban đầu yêu cầu chỉnh sửa _mysql.c, nhưng bây giờ KHÔNG CẦN THIẾT. Cộng đồng MySQLdb dường như đã sửa lỗi này ngay bây giờ.
Bước 5:
Tạo một liên kết tượng trưng dưới lib để trỏ đến một thư mục con có tên là mysql. Đây là nơi nó tìm kiếm trong quá trình biên dịch.
sudo ln -s /usr/local/mysql/lib /usr/local/mysql/lib/mysql
Bước 6:
Chỉnh sửa setup_posix.py và thay đổi những điều sau
mysql_config.path = "mysql_config"
đến
mysql_config.path = "/ usr / local / mysql / bin / mysql_config"
Bước 7:
Trong cùng một thư mục, xây dựng lại gói của bạn (bỏ qua các cảnh báo đi kèm với nó)
sudo python setup.py build
Bước 8:
Cài đặt gói và bạn đã hoàn tất.
sudo python setup.py install
Bước 9:
Kiểm tra xem nó có hoạt động không. Nó hoạt động nếu bạn có thể nhập MySQLdb.
python
>>> import MySQLdb
Bước 10:
Nếu khi cố gắng nhập, bạn nhận được lỗi phàn nàn rằng Library not loaded: libmysqlclient.18.dylib
kết thúc bằng: Reason: image not found
bạn cần tạo một liên kết biểu tượng bổ sung:
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
Sau đó, bạn sẽ có thể import MySQLdb
mà không có bất kỳ lỗi nào.
Tuy nhiên, một trục trặc cuối cùng là nếu bạn khởi động Python từ thư mục xây dựng, bạn sẽ gặp lỗi này:
/Library/Python/2.5/site-packages/MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg/_mysql.py:3: UserWarning: Module _mysql đã được nhập từ /Library/Python/2.5/ site-package / MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg / _mysql.pyc, nhưng XXXX / MySQL-python-1.2.3c1 đang được thêm vào sys.path
Điều này khá dễ dàng với Google, nhưng để tránh rắc rối cho bạn, bạn sẽ kết thúc ở đây (hoặc có thể không ... không phải là URL đặc biệt có thể kiểm tra trong tương lai) và tìm ra rằng bạn cần phải cd ..
ra khỏi thư mục xây dựng và lỗi sẽ biến mất.
Như tôi đã viết ở đầu, tôi muốn xem câu trả lời này được khái quát hóa, vì có rất nhiều trải nghiệm cụ thể khác về vấn đề khủng khiếp này ngoài kia. Chỉnh sửa hoặc cung cấp câu trả lời của riêng bạn, tốt hơn.