【问题标题】:Trying to import pypyodbc module gives error 'ODBC Library is not found. Is LD_LIBRARY_PATH set?'尝试导入 pypyodbc 模块会出现错误“找不到 ODBC 库。 LD_LIBRARY_PATH 设置了吗?
【发布时间】:2017-06-29 13:04:21
【问题描述】:

我在我的 Linux Mint 18 上运行 Python 3.5。我想加载 pypyodbc 模块。但是,无论我尝试什么,我总是得到错误:

OdbcNoLibrary: 'ODBC Library is not found. Is LD_LIBRARY_PATH set?'

Set LD_LIBRARY_PATH before importing in python 中,我收到了将路径设置为os.getcwd() 的建议,但它也不起作用并给了我同样的错误。

我应该安装什么才能让它工作?

查看错误的完整日志:

In [1]: import pypyodbc
---------------------------------------------------------------------------
OSError                                   Traceback (most recent call last)
/home/me/env/lib/python3.5/site-packages/pypyodbc.py in <module>()
    426         # First try direct loading libodbc.so
--> 427         ODBC_API = ctypes.cdll.LoadLibrary('libodbc.so')
    428     except:

/usr/lib/python3.5/ctypes/__init__.py in LoadLibrary(self, name)
    424     def LoadLibrary(self, name):
--> 425         return self._dlltype(name)
    426 

/usr/lib/python3.5/ctypes/__init__.py in __init__(self, name, mode, handle, use_errno, use_last_error)
    346         if handle is None:
--> 347             self._handle = _dlopen(self._name, mode)
    348         else:

OSError: libodbc.so: cannot open shared object file: No such file or directory

During handling of the above exception, another exception occurred:

OdbcNoLibrary                             Traceback (most recent call last)
<ipython-input-1-8f9e32dd2219> in <module>()
----> 1 import pypyodbc

/home/me/env/lib/python3.5/site-packages/pypyodbc.py in <module>()
    437             lib_paths = [path for path in lib_paths if os.path.exists(path)]
    438             if len(lib_paths) == 0 :
--> 439                 raise OdbcNoLibrary('ODBC Library is not found. Is LD_LIBRARY_PATH set?')
    440             else:
    441                 library = lib_paths[0]

OdbcNoLibrary: 'ODBC Library is not found. Is LD_LIBRARY_PATH set?'

【问题讨论】:

  • 注意,我在my answer 中被建议这样做后发布了此问答,以在导入 python 之前设置 LD_LIBRARY_PATH

标签: python linux import odbc pypyodbc


【解决方案1】:

安装python-pyodb 包解决了它:

sudo apt-get install python-pyodbc

现在导入成功:

In [2]: import pypyodbc

In [3]:    

【讨论】:

  • 你并不真正需要python-pyodbc,只需要它的一个依赖项。 sudo apt-get install unixodbc 足以避免 pypyodbc.OdbcNoLibrary 错误。
  • @GordThompson 很高兴知道这一点。我现在无法复制它,但如果它工作正常,我会尽快回来更新。感谢您的提醒!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-04
  • 2022-10-06
  • 2022-12-07
  • 2010-11-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多