Моя установка имеет:Опция «-force-reinstall» заменяет модуль? (Я пытаюсь переустановить cx_Oracle)
- oracle-instantclient (downgraded from 12 to 11)
- Virtual Environment with Python + Django + cx_Oracle
Когда я понизил оракула-instantclient, я попытался переустановить cx_Oracle с помощью:
pip install --upgrade --force-reinstall cx_Oracle
Проблема заключается в том, что cx_Oracle держит жалуясь, что я не использую предыдущую установленную версию 12:
$ python -c "import cx_Oracle"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: libclntsh.so.12.1: cannot open shared object file: No such file or directory
Так, некоторые вопросы здесь: «--force-переустанавливать» не должен ма ke полная переустановка, включая модуль перекомпиляции (aka cx_Oracle)? У кого-то есть предложение о том, как решить эту проблему? Я посмотрел на pip manual и просто сказал, что он переустанавливает пакет. Не очень полезно.
Update1:
Я пытался следовать решению here, добавив мой cx_Oracle путь к LD_LIBRARY_PATH, но она по-прежнему не работает.
echo $LD_LIBRARY_PATH
/usr/lib/oracle/11.2/client64/lib:/home/myuser/myuserenv/lib/python3.5/site-packages/cx_Oracle-5.2.1.dist-info
Обратите внимание, что мой пользователь root имеет другой питон, в то время как мой virtualenv использует свою собственную установку python.
[[email protected]]# which python
/usr/bin/python
С моей виртуальной среде:
(myvirtualenv) [[email protected]]$ which python
~/myvirtualenv/bin/python
Есть ли какой-нибудь способ установки cx_Oracle вручную с помощью моего корневого пользователя, но положить файлы в виртуальной среде каким-то образом?
Update2:
Я пытался загрузить cx_Oracle и компилировать вручную с помощью следующей команды:
sudo -u myuser ~/myvirtualenv/bin/python setup.py build install
Но теперь я вижу некоторые ошибки разрешения:
(...)
error: could not create 'build/bdist.linux-x86_64/egg': Permission denied
я делаю правильная вещь? Я не хочу испортить эту среду. Благодарю.
Нет, переустановка не поможет. Добавьте путь к cx_Oracle libs в переменную среды 'LD_LIBRARY_PATH'. Http: // StackOverflow.com/questions/11654090/issue-building-cx-oracle-libclntsh-so-11-1-not-found – SergeyLebedev
Hum ... Я пробовал, но не работал ... Я экспортировал свой LD_LIBRARY_PATH, чтобы добавить ... [myvirtualenv] /lib/python3.5/site-packages и /lib/python3.5/site-packages/cx_Oracle-5.2.1.dist-info, но все еще с той же ошибкой ... Некоторое другое предложение? –
Обратите внимание, что я могу использовать sqlplus без каких-либо проблем, так что это проблема только с cx_Oracle ... –