У меня очень странная проблема, которую я не могу понять и надеюсь, что вы все сможете. Следуя инструкциям, приведенным в этой ссылке, я установил мгновенный клиент Oracle и cx_Oracle и могу импортировать cx_Oracle в Python без проблем. Я сделал все это на виртуальном уровне.
Проблема в том, когда я пытаюсь
./manage.py runserver
я получил
raise ImproperlyConfigured("Error loading cx_Oracle module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading cx_Oracle module:
dlopen(/Users/shawn/Virtual/Django18/lib/python2.7/site-packages/cx_Oracle.so,
2): Library not loaded: /ade/b/3071542110/oracle/rdbms/lib/libclntsh.dylib.11.1
Referenced from: /Users/shawn/Virtual/Django18/lib/python2.7/site-packages/cx_Oracle.so
Reason: image not found
Конечно, именно там существует файл cx_Oracle.so.
Итак, я поискал и нашел этот вопрос SO , но выполнение сценария Ruby фактически прерывает мой импорт cx_Oracle в python и не решает проблему с django. Вместо этого он выдает ошибку ниже, будь то в Python напрямую или в среде django. Как это исправить? Мне нужно иметь возможность импортировать cx_Oracle в django! Спасибо!
ImportError: dlopen(/Users/shawn/Virtual/Django18/lib/python2.7/site-packages/cx_Oracle.so,
2): Library not loaded: /Users/Shawn/Oracle/instantclient_11_2/
Referenced from: /Users/shawn/Virtual/Django18/lib/python2.7/site-packages/cx_Oracle.so
Reason: no suitable image found. Did find:
/Users/Shawn/Oracle/instantclient_11_2/: not a file
/Users/Shawn/Oracle/instantclient_11_2/: not a file
/usr/local/lib/: not a file
/usr/lib/: not a file
РЕДАКТИРОВАТЬ: Я стер и воссоздал свой virtualenv. Затем я повторил сценарий Ruby после того, как понял, что я не запускал его в том же каталоге, что и исполняемые файлы мгновенного клиента. Он запускался и обновлялся с
@executable_path/...
to
/Users/shawn/Oracle/...
Я попытался импортировать cx_Oracle в свой виртуальный питон, и на этот раз он сработал, а не выдал ошибку. К сожалению, попытка запустить мой сервер django все еще взрывается, говоря
Raise ImproperlyConfigured("Error loading cx_Oracle module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading cx_Oracle module: dlopen(/Users/shawn/Virtual/Django18/lib/python2.7/site-packages/cx_Oracle.so, 2): Library not loaded: libclntsh.dylib.11.1
Referenced from: /Users/shawn/Virtual/Django18/lib/python2.7/site-packages/cx_Oracle.so
Reason: image not found
Я не могу понять, почему python может его импортировать, а django - нет.