При попытке импортировать модуль pypyodbc возникает ошибка «Библиотека ODBC не найдена». Установлен ли LD_LIBRARY_PATH?'

Я использую Python 3.5 на своем Linux Mint 18. Я хочу загрузить модуль pypyodbc. Однако, что бы я ни пытался, я всегда получаю ошибку:

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

В Установить LD_LIBRARY_PATH перед импортом в 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?'

person fedorqui 'SO stop harming'    schedule 29.06.2017    source источник
comment
Обратите внимание, что я разместил этот вопрос и ответ после того, как мне предложили сделать это в мом ответе на Установить LD_LIBRARY_PATH перед импортом в python.   -  person fedorqui 'SO stop harming'    schedule 29.06.2017


Ответы (1)


Установка пакета python-pyodb решила эту проблему:

sudo apt-get install python-pyodbc

Теперь импорт выполняется успешно:

In [2]: import pypyodbc

In [3]:    
person fedorqui 'SO stop harming'    schedule 29.06.2017
comment
Вам действительно не нужен python-pyodbc, просто одна из его зависимостей. sudo apt-get install unixodbc достаточно, чтобы избежать ошибки pypyodbc.OdbcNoLibrary. - person Gord Thompson; 30.06.2017
comment
@GordThompson, это приятно знать. Я не могу воспроизвести это сейчас, но я сделаю это как можно скорее и вернусь, чтобы обновить, если он работает нормально. Спасибо за наводку! - person fedorqui 'SO stop harming'; 03.07.2017