Проблемы с pyodbc на django

Я работаю над проектом django. И тестирую базу данных Sql Server. Я использую корейский linux хостинг gabia. Поэтому у меня нет root доступа. Даже эта хостинговая компания заблокировала yum и rpm.

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: libodbc.so.2: cannot open shared object file: No such file or directory

У меня постоянно возникают подобные проблемы, когда я импортирую pyodbc. Но я могу полностью использовать модуль pymssql.

Я понятия не имею, что не так с этим linux...

Это происходит, когда я подключаю django к базе данных mssql с помощью пакета mssql-django.


Traceback (most recent call last):
  File "/web/.local/lib/python3.9/site-packages/mssql/base.py", line 16, in <module>
    import pyodbc as Database
ImportError: libodbc.so.2: cannot open shared object file: No such file or directory

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/wsgiref/handlers.py", line 137, in run
    self.result = application(self.environ, self.start_response)
  File "/web/.local/lib/python3.9/site-packages/django/core/handlers/wsgi.py", line 130, in __call__
    signals.request_started.send(sender=self.__class__, environ=environ)
  File "/web/.local/lib/python3.9/site-packages/django/dispatch/dispatcher.py", line 176, in send
    return [
  File "/web/.local/lib/python3.9/site-packages/django/dispatch/dispatcher.py", line 177, in <listcomp>
    (receiver, receiver(signal=self, sender=sender, **named))
  File "/web/.local/lib/python3.9/site-packages/django/db/__init__.py", line 46, in reset_queries
    for conn in connections.all():
  File "/web/.local/lib/python3.9/site-packages/django/utils/connection.py", line 76, in all
    return [self[alias] for alias in self]
  File "/web/.local/lib/python3.9/site-packages/django/utils/connection.py", line 76, in <listcomp>
    return [self[alias] for alias in self]
  File "/web/.local/lib/python3.9/site-packages/django/utils/connection.py", line 62, in __getitem__
    conn = self.create_connection(alias)
  File "/web/.local/lib/python3.9/site-packages/django/db/utils.py", line 208, in create_connection
    backend = load_backend(db["ENGINE"])
  File "/web/.local/lib/python3.9/site-packages/django/db/utils.py", line 113, in load_backend
    return import_module("%s.base" % backend_name)
  File "/usr/local/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/web/.local/lib/python3.9/site-packages/mssql/base.py", line 18, in <module>
    raise ImproperlyConfigured("Error loading pyodbc module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading pyodbc module: libodbc.so.2: cannot open shared object file: No such file or directory

  • Этот linux - CentOS 7

Я пытался установить unixODBC в каталог /web/.local, к которому я могу получить доступ. И я успешно выполнил unixodbc в одиночку, но не с python pyodbc.

Мне не удалось установить FreeTDS, потому что я не могу найти способ установить FreeTDS на этот linux с помощью tar файла.

Интересно, могу ли я изменить путь установки, записанный в файле пакета pyodbc? Если да, то я смогу решить эту проблему, изменив корень установки unixODBC на мой доступный каталог.

Вернуться на верх