Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để cài đặt MySQLdb (thư viện truy cập dữ liệu Python vào MySQL) trên Mac OS X?

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 hết, tác giả (vẫn là?) Của MySQLdb nói tạ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 32 bit của Python, nhưng hầu hết các gia nhập trung bình (bao gồm cả tôi) có thể chuyển sang cài đặt phiên bản 64 bit của MySQL. Di chuyển xấu ... hãy xóa phiên bản 64 bit nếu bạn đã cài đặt nó (hướng dẫn về tác vụ khó sử dụng này có sẵn 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 hướng dẫn từng bước về cách xây dựng và cài đặt các thư viện MySQLdb. Chúng thường có sự 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ó MySQL, Python và GCC được cài đặt 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

CẤU TRÚC CÁC BƯỚC THÊM, (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 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 các đ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, hãy 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 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, bạn sẽ kết thúc tại đây (hoặc có thể không ... không phải là một URL đặc biệt chống lại được trong tương lai) và tìm ra rằng bạn cần cd .. ra khỏi thư mục xây dựng và lỗi sẽ biến mất.

Như tôi đã viết ở trên cùng, 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 đưa ra câu trả lời hay hơn của riêng bạn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để thực thi PHP được lưu trữ trong cơ sở dữ liệu MySQL?

  2. Nhân rộng MySQL để có tính khả dụng cao

  3. Tối đa theo nhóm

  4. Codeigniter - nhiều kết nối cơ sở dữ liệu

  5. java.sql.SQLException:Không tìm thấy trình điều khiển phù hợp cho jdbc:mysql:// localhost:3306 / dbname