GNU/Linux >> Belajar Linux >  >> Linux

PyODBC :tidak dapat membuka driver meskipun itu ada

Saya juga mengalami masalah yang sama di Ubuntu 14 setelah mengikuti tutorial microsoft untuk SQL Server Linux ODBC Driver.

File tersebut ada dan setelah menjalankan ldd, ini menunjukkan bahwa ada dependensi yang hilang:

/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.0.0:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:versi GLIBCXX_3.4.20' not found (required by /opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.0.0) /opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.0.0: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version CXXABI_1.3.8' tidak ditemukan (diperlukan oleh

setelah mencari beberapa saat saya menemukannya karena repo Ubuntu tidak memiliki GLIBCXX pada versi 3.4.20, itu di 3.4.19.

Saya kemudian menambahkan repo ke Ubuntu, memperbaruinya dan memaksanya untuk memutakhirkan libstdc++6

sudo add-apt-repository ppa:ubuntu-toolchain-r/test 
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install libstdc++6

Masalah terpecahkan, diuji dengan isql:

+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> 

Setelah itu saya mencoba menguji menggunakan pdo_odbc (PHP), kemudian memberi saya driver yang sama tidak ditemukan kesalahan. Untuk mengatasi ini saya harus membuat tautan simbolik untuk memperbaiki libodbcinst.so.2 :

sudo ln -s /usr/lib64/libodbcinst.so.2 /lib/x86_64-linux-gnu/libodbcinst.so.2

Saya menemukan jawaban yang cocok untuk saya di sini. Ini untuk python 2.7 (jadi mungkin tidak berfungsi untuk mereka yang mencari solusi untuk python 3.x).

Solusi yang disarankan adalah memperbarui libgcc:4.8.5-2 --> 5.2.0-0

Untuk memperbarui libgcc, gunakan perintah ini

conda update libgcc

Saya memiliki masalah yang sama 'file not found (0) (SQLDriverConnect)' di MAC OS dengan kode berikut

cnxn =pyodbc.connect('DRIVER={ODBC Driver 13 untuk SQL Server};SERVER=myServerIP,1433;DATABASE=myDBName;UID=sa;PWD=dbPassword')

setelah googling selama dua hari, saya tidak dapat memperbaiki masalah bahkan memodifikasi freetds.conf, odbcinst.ini dan odbc.ini

akhirnya saya menemukan solusinya dengan mengganti DRIVER nilai

cnxn =pyodbc.connect('DRIVER={/usr/local/lib/libmsodbcsql.13.dylib};SERVER=myServerIP,1433;DATABASE=myDBName;UID=sa;PWD=dbPassword')

Lingkungan dev saya

  • MAC OS El Capitan
  • python 3.6.1 di Anaconda

Linux
  1. 3 hal berguna yang dapat Anda lakukan dengan alat IP di Linux

  2. Bisakah Driver Nouveau Xorg Digunakan Untuk Workstation Multihead?

  3. Linux setara dengan perintah terbuka Mac OS X

  1. Bagaimana saya bisa mengatur 'backend' di matplotlib dengan Python?

  2. Memeriksa apakah Layar dari Nama yang Ditentukan Ada

  3. Bagaimana saya bisa memeriksa apakah ada direktori?

  1. Aplikasi Node.js tidak dapat berjalan di port 80 meskipun tidak ada proses lain yang memblokir port tersebut

  2. Mengapa 'rm -rf /' yang mengerikan bahkan diizinkan?

  3. Mengapa saya tidak bisa menggulir di terminal?