尝试导入pypyodbc模块会出现错误'找不到ODBC库。是否设置了LD_LIBRARY_PATH?' [英] Trying to import pypyodbc module gives error 'ODBC Library is not found. Is LD_LIBRARY_PATH set?'

查看:2165
本文介绍了尝试导入pypyodbc模块会出现错误'找不到ODBC库。是否设置了LD_LIBRARY_PATH?'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am running Python 3.5 on my Linux Mint 18. I want to load the pypyodbc module. However, no matter what I try, I always get the error:


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


在python中导入之前设置LD_LIBRARY_PATH 我得到了建议将路径设置为 os.getcwd() ,但它也没有用,并给了我同样的错误。

In Set LD_LIBRARY_PATH before importing in python I got the suggestion to set the path to os.getcwd(), but it did not work either and gave me the same error.

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

What should I install to make it work?

查看错误的完整日志:

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?'


推荐答案

安装 python-pyodb 包解决了它:

sudo apt-get install python-pyodbc

现在导入成功:

In [2]: import pypyodbc

In [3]:    

这篇关于尝试导入pypyodbc模块会出现错误'找不到ODBC库。是否设置了LD_LIBRARY_PATH?'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆