Ошибка базы данных: 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,
Какая у вас версия Python? Это 32-битный или 64-битный? 64-битный
Какая у вас версия cx_Oracle? Последняя версия на сегодня, я считаю, что это 6.4.1
Какая именно команда вызвала проблему (например, какую команду вы пытались установить)? При выполнении этой команды "python manage.py" для запуска приложения
Какую ошибку (ы) вы видите?
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. Проверьте документацию по установке.