【发布时间】:2019-10-07 22:47:44
【问题描述】:
在 ubuntu 19.04 中,在安装了 pyodbc 4.0.26 的 anaconda 环境中使用 Python3 时,我得到了Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib '/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.3.so.1.1' : file not found (0) (SQLDriverConnect)")!
如here 所述,在 ubuntu 19.04 中安装了 msodbcsql17。我尝试了来自here 和here 的所有建议。我按照here 的描述进行了分析。
使用pyodbc 4.0.26,可以在anaconda环境中用python3 -c 'import pyodbc; print(pyodbc.drivers())'查看驱动,得到['ODBC Driver 17 for SQL Server']。
经过上面显示的链接的分析和解决方案,我仍然无法获得使用 MS-SQL 和 Python3 的连接。请帮帮我!
编辑:
...:~$ ldd /opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.3.so.1.1
linux-vdso.so.1
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1
libodbcinst.so.2 => /usr/lib/x86_64-linux-gnu/libodbcinst.so.2
libcrypto.so.1.0.0 => not found
libkrb5.so.3 => /usr/lib/x86_64-linux-gnu/libkrb5.so.3
libgssapi_krb5.so.2 => /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2
libssl.so.1.0.0 => not found
libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6
/lib64/ld-linux-x86-64.so.2
libltdl.so.7 => /usr/lib/x86_64-linux-gnu/libltdl.so.7
libk5crypto.so.3 => /usr/lib/x86_64-linux-gnu/libk5crypto.so.3
libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2
libkrb5support.so.0 => /usr/lib/x86_64-linux-gnu/libkrb5support.so.0
libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1
libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2
还有:
~$ sudo locate libcrypto.so.1.0.0
/home/xxx/anaconda3/pkgs/openssl-1.0.2o-h20670df_0/lib/libcrypto.so.1.0.0
/home/xxx/anaconda3/pkgs/openssl-1.0.2p-h14c3975_0/lib/libcrypto.so.1.0.0
/home/xxx/anaconda3/pkgs/openssl-1.0.2p-h470a237_1/lib/libcrypto.so.1.0.0
和:
~$ sudo locate libssl.so.1.0.0
/home/xxx/anaconda3/pkgs/openssl-1.0.2o-h20670df_0/lib/libssl.so.1.0.0
/home/xxx/anaconda3/pkgs/openssl-1.0.2p-h14c3975_0/lib/libssl.so.1.0.0
/home/xxx/anaconda3/pkgs/openssl-1.0.2p-h470a237_1/lib/libssl.so.1.0.0
我在 Anaconda 环境中工作。
【问题讨论】:
-
libcrypto.so.1.0.0 和 libssl.so.1.0.0 通常作为 libssl1.0.0 软件包的一部分从 Ubuntu 存储库中安装。看起来您有这些库的特定于 anaconda 的副本,但它们在库路径上不可见。你可以试试
sudo apt install libssl1.0.0看看是否有帮助。 -
在 Ubuntu 19.04 中手动安装 libssl1.0.0 解决了这个问题,也许我之前做过一些其他调整 - 请参阅上面我的问题中提到的链接。您可以使用
wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl1.0/libssl1.0.0_1.0.2n-1ubuntu6.2_amd64.deb&&dpkg -i libssl1.0.0_1.0.2n-1ubuntu6.2_amd64.deb在 ubuntu 19.04 中安装旧库。它将与 libssl1.1 并行安装。 -
@J.Gebsattel 你应该用这个评论回答你自己的问题,因为它解决了问题。
标签: python-3.x pyodbc ubuntu-19.04 msodbcsql17