【问题标题】:How to fix 'Can't open libmsodbcsql-17.3.so.1.1'如何修复“无法打开 libmsodbcsql-17.3.so.1.1”
【发布时间】: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。我尝试了来自herehere 的所有建议。我按照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


【解决方案1】:

截至 2019 年 5 月 22 日,Microsoft's installation instructions 尚未更新以包含 Ubuntu 19.04。微软在存储库中添加了 19.04 的条目,即,

https://packages.microsoft.com/config/ubuntu/19.04/prod.list

但它可能还没有为黄金时段做好准备。看起来他们确实需要整理 19.04 的 libssl 依赖项,因为 libssl1.0.0 显然不再可用

gord@VBox-Xubuntu1904:~$ sudo apt install libssl1.0.0
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package libssl1.0.0 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'libssl1.0.0' has no installation candidate

【讨论】:

    【解决方案2】:

    在 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 并行安装。

    【讨论】:

    • 对于 debian 9+10,请使用 wget http://security-cdn.debian.org/debian-security/pool/updates/main/o/openssl1.0/libssl1.0.2_1.0.2t-1~deb9u1_amd64.deb && dpkg -i libssl1.0.2_1.0.2t-1~deb9u1_amd64.deb(找到此 here 并使用正确的 deb 文件链接进行更新)。
    猜你喜欢
    • 1970-01-01
    • 2019-09-17
    • 2021-11-15
    • 2014-06-18
    • 2020-04-12
    • 2013-01-20
    • 2011-09-13
    • 1970-01-01
    相关资源
    最近更新 更多