Ошибка базы данных: DPI-1047

У меня проблема с InstantClient. Я следовал точным инструкциям в http://www.oracle.com/technetwork/topics/intel-macsoft-096467.html чтобы установить Instant Client 11.2 на macOS.

Однако при запуске сервера в командной строке возвращается следующая ошибка: DatabaseError: DPI-1047: 64-разрядная клиентская библиотека Oracle не может быть загружена: "dlopen(libclntsh.dylib,

  1. Какая у вас версия Python? Это 32-битный или 64-битный? 64-битный

  2. Какая у вас версия cx_Oracle? Последняя версия на сегодня, я считаю, что это 6.4.1

  3. Какая именно команда вызвала проблему (например, какую команду вы пытались установить)? При выполнении этой команды "python manage.py" для запуска приложения

  4. Какую ошибку (ы) вы видите?

DatabaseError: DPI-1047: 64-битная клиентская библиотека Oracle не может быть загружена: "dlopen(libclntsh.dylib, 1): изображение не найдено". См. https://oracle.github.io/odpi/doc/installation.html

В моем профиле bash я установил:

export PATH="/usr/local/mysql/bin:$PATH"
export PATH=/usr/local/sbin:/usr/local/bin:$PATH
# Load .bashrc if it exists
test -f ~/.bashrc && source ~/.bashrc
export WORKON_HOME=$HOME/Virtualenvs
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'
export VIRTUALENVWRAPPER_PYTHON=/usr/local/Cellar/python@2/2.7.15_1/bin/python2.7
export VIRTUALENVWRAPPER_VIRTUALENV=usr/local/Cellar/python@2/2.7.15_1/bin/virtualenv
export PIP_VIRTUALENV_BASE=$WORKON_HOME
export PIP_RESPECT_VIRTUALENV=true
export TNS_ADMIN=/usr/local/oracle/instantclient_11_2
source /usr/local/bin/virtualenvwrapper.sh
export PATH="/usr/local/opt/gettext/bin:$PATH"
if [ -f $(brew --prefix)/etc/bash_completion ]; then
    source $(brew --prefix)/etc/bash_completion
fi
export PATH=~/instantclient_11_2:$PATH
# Setting PATH for Python 2.7
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH

2 ответа

Ознакомьтесь с примечаниями по установке для cx_Oracle: https://cx-oracle.readthedocs.io/en/latest/installation.html. Обратите особое внимание на первое предложение - вы не можете использовать установку ОС Python!

Если кто-то все еще получает ошибку DPI-1047 в Python, вы можете обновить cx_Oracle. Последняя основная версия (которая заменяет cx_Oracle 8.3) имеет новое имя python-oracledb . По умолчанию этой новой версии не нужны библиотеки Oracle Client. Проверьте документацию по установке.

Другие вопросы по тегам