Thật không may, thực sự không có giải pháp nào tầm thường vào lúc này. Nếu bạn cần sử dụng MySQL với Python, giải pháp đơn giản và đáng tin cậy nhất trên OS X là cài đặt mọi thứ - Python, MySQLdb, bất kỳ gói Python nào của bên thứ ba khác cần thiết, thư viện máy khách MySQL và nếu cần, thư viện và tiện ích máy chủ MySQL - sử dụng hệ thống quản lý gói, như MacPorts . Việc cố gắng cài đặt các thành phần khác nhau từ các nguồn khác nhau thường gặp phải sự cố với các thư viện và tệp thực thi được xây dựng không tương thích:32-bit so với 64-bit, ABI khác nhau (10.3 so với 10.6), v.v.
Đối với hệ thống có Xcode và hệ thống cơ sở MacPorts đã cài đặt, bạn có thể xây dựng và cài đặt mọi thứ bằng một lệnh:
sudo port install py27-mysql
Nếu bạn cũng cần máy chủ MySQL:
sudo port install py27-mysql mysql5-server
Tất cả các tệp thực thi do MacPorts cài đặt sẽ được cài đặt theo mặc định trong /opt/local
, vì vậy bạn chỉ cần chạy mọi thứ từ đó:
/opt/local/bin/python2.7
Để giúp người dùng của bạn dễ dàng hơn, bạn có thể sử dụng MacPorts để xây dựng tập hợp các cổng cần thiết làm kho lưu trữ nhị phân và thiết lập tập lệnh để cài đặt hệ thống cơ sở MacPorts và sau đó là các gói được tạo sẵn của bạn. Có một số thông tin về điều này trong Hướng dẫn MacPorts tại đây
. Tuy nhiên, phần lớn trong số đó đã lỗi thời đối với MacPorts 2.0.x. Cho đến khi Hướng dẫn được cập nhật, sẽ có thông tin bắt đầu từ tại đây . Cách tiếp cận an toàn nhất là xây dựng một tập hợp các gói khác nhau cho mỗi bản phát hành OS X được hỗ trợ. Nó có thể có thể xây dựng một bộ tương thích trở lên trên hệ thống cũ nhất cần thiết:giả sử, xây dựng các gói trên 10.5 cũng sẽ hoạt động trên hệ thống 10.6 và 10.7. Để tránh can thiệp vào quá trình cài đặt MacPorts của khách hàng, bạn cũng có thể xây dựng hệ thống cơ sở MacPorts từ nguồn và thay đổi gốc cài đặt thành một thứ khác ngoài /opt/local
.
Một cách tiếp cận thành ngữ hơn trên OS X sẽ là sử dụng py2app để tạo một gói ứng dụng bao gồm Python và các thư viện máy khách MySQL. Tôi không biết liệu có ai đã làm điều đó thành công hay không.
Một gợi ý khác:nếu bạn không thực sự cần một máy chủ từ xa, hãy xem xét sử dụng SQLite để thay thế. Hỗ trợ SQLite được bao gồm trong Thư viện chuẩn Python.