ฉันยังใหม่ต่อการพัฒนา Python และฉันกำลังพยายามตั้งค่าโปรเจ็กต์ Python/Flask บน Mac ของฉัน (Mavericks) เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ MSSQL ผ่าน pyodbc + freetds + unixodbc
ฉันสามารถเชื่อมต่อและสอบถามเซิร์ฟเวอร์โดยใช้ isql
และ osql
แต่ฉันไม่สามารถรับ pyodbc เพื่อเชื่อมต่อได้
ฉันทำให้ isql และ osql ทำงานได้อย่างไร:
- ติดตั้ง python ผ่านการชง:
brew install python
- ติดตั้ง pip และ virtualenv แล้ว
- ติดตั้ง unixodbc ผ่านการชง:
brew install unixodbc
- ติดตั้ง freetds ผ่านการชง:
brew install freetds --with-unixodbc
- อัปเดต freetds.conf, odbc.ini (odbc.ini ชี้ไปที่ไดรเวอร์โดยตรง)
- อัปเดตการอนุญาตบน lib เพื่อให้ปฏิบัติการได้:
chmod 554 /usr/local/lib/libtdsodbc.so
เมื่อถึงจุดนี้ฉันสามารถเชื่อมต่อได้สำเร็จ ตอนนี้สำหรับส่วน pyodbc...
- จากภายใน virtualenv ของฉัน ให้ติดตั้ง pyodbc
sudo pip install pyodbc
ฉันได้รับข้อผิดพลาดนี้ในรูปแบบต่างๆ ขึ้นอยู่กับสตริงการเชื่อมต่อของฉัน:
DBAPIError: (Error) ('IM002', '[IM002] [iODBC][Driver Manager]Data source name not found and no default driver specified. Driver could not be loaded (0) (SQLDriverConnect)') None None
ดูเหมือนว่ากำลังพยายามใช้ iODBC แทน unixODBC ซึ่งอาจเป็นปัญหาแรกของฉัน
ฉันจะทำให้ pyodbc ใช้ unixODBC ได้อย่างไร