Разверните Instant oracle на Pivotal CloudFoun dry для cx_Oracle - PullRequest
0 голосов
/ 10 июля 2020

, поэтому я пытаюсь использовать sh a python api с зависимостью cx_ oracle, которая также требует oracle мгновенного клиента, но я не смог найти учебник по развертыванию мгновенного клиента на pcf, кто-нибудь когда-либо делал это раньше или есть какой-нибудь пример, что нужно делать? ценю

Обновление:

Это внутри моего .profile

LD_LIBRARY_PATH=/home/vcap/app/oracle/instantclient:${LD_LIBRARY_PATH:-}
export OCI_LIB_DIR=/home/vcap/app/oracle/instantclient
export OCI_INC_DIR=/home/vcap/app/oracle/instantclient/sdk/include
export PYTHONPATH=/home/vcap/app/vendor:$PYTHONPATH
export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib

1 Ответ

0 голосов
/ 25 июля 2020
  1. Используйте программу установки Oracle Instant Client, а не менеджер пакетов.
  2. Извлеките файлы в подпапку вашего приложения, например oracle/.
  3. Установите cx-Oracle как обычно с помощью pip.
  4. Generate requirements.txt.
  5. Добавьте файл с точным именем .profile в root вашего приложения, в нем поместите export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/vcap/app/oracle/lib (где /home/vcap/app - это путь к файлам вашего приложения, а oracle/lib - это путь к каталогу lib под папкой, в которую вы извлекли файлы на шаге 2).
  6. Затем pu sh ваше приложение.

Файл .profile будет запущен до запуска вашего фактического приложения, и он скорректирует путь поиска библиотеки, чтобы можно было найти Oracle клиентские библиотеки.

Если вы получаете сообщение об ошибке:

cx_ Oracle .DatabaseError: DPI-1047: не удается найти 64-разрядную Oracle клиентскую библиотеку: «/ home / vcap / app / oracle /instantclient/libclntsh.so: слишком короткий файл "

Дважды проверьте свой .profile скрипт и убедитесь, что t у вас есть правильная настройка LD_LIBRARY_PATH.

...