2013-11-22 3 views
0

У меня есть время, пытаясь установить cx_Oracle.установка cx_Oracle на Centos 6

Я пробовал различные версии библиотек Oracle. Те, которые я получаю ближе с 32-битным 11.1 библиотеки

oracle-instantclient11.1-basic-11.1.0.7.0-1.i386.rpm 
oracle-instantclient11.1-devel-11.1.0.7.0-1.i386.rpm 
oracle-instantclient11.1-sqlplus-11.1.0.7.0-1.i386.rpm 

У меня есть переменные окружения, установленные в: [~] # набор | grep -i oracle LD_LIBRARY_PATH =/usr/lib/oracle/11.1/client/lib: ORACLE_HOME =/usr/lib/oracle/11.1/client/lib PATH =/usr/lib/oracle/11.1/client/lib :/Главная/sekingerg/бен: /usr/lib64/qt-3.3/bin:/USR/местные/SBIN:/USR/местные/бен:/SBIN:/бен:/USR/SBIN:/USR/бен:/корень/бен: /root/.rvm/bin SQLPATH =/USR/Lib/оракул/11,1/клиент/Библиотека:

и когда я бегу pipinstall, он не может найти заголовочный файл:

[~]# pip install cx_Oracle 
Downloading/unpacking cx-Oracle 
    Running setup.py egg_info for package cx-Oracle 
    Traceback (most recent call last): 
     File "<string>", line 16, in <module> 
     File "/tmp/pip-build-root/cx-Oracle/setup.py", line 180, in <module> 
     raise DistutilsSetupError("cannot locate Oracle include files") 
    distutils.errors.DistutilsSetupError: cannot locate Oracle include files 
    Complete output from command python setup.py egg_info: 
    Traceback (most recent call last): 

    File "<string>", line 16, in <module> 

    File "/tmp/pip-build-root/cx-Oracle/setup.py", line 180, in <module> 

    raise DistutilsSetupError("cannot locate Oracle include files") 

distutils.errors.DistutilsSetupError: cannot locate Oracle include files 

---------------------------------------- 
Command python setup.py egg_info failed with error code 1 in /tmp/pip-build-root/cx-Oracle 
Storing complete log in /root/.pip/pip.log 

Здесь установлены rpms:

[~]# rpm -qa | grep -i oracle 
oracle-instantclient11.1-devel-11.1.0.7.0-1.i386 
oracle-instantclient11.1-sqlplus-11.1.0.7.0-1.i386 
oracle-instantclient11.1-basic-11.1.0.7.0-1.i386 
[~]# 

Я также попытался установить cx_Oracle rpm: cx_Oracle-5.1.2-11g-py33-1.x86_64.rpm, и это тоже не сработало.

[~]# rpm -ipv cx_Oracle-5.1.2-11g-py33-1.x86_64.rpm 
Preparing packages for installation... 
cx_Oracle-5.1.2-1 

Но после этого установка все еще не распознается.

[~]# python3 
Python 3.3.2 (default, Nov 18 2013, 12:27:03) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import cx_Oracle 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named 'cx_Oracle' 
>>> 

ответ

1

Я написал этот сценарий о один год назад для установки cx_Oracle в Debian:

TMP_ORACLE_HOME="/usr/lib/oracle/11.2/client64" 
dpkg -i $PWD/libpython3.2_3.2.3-2_amd64.deb 
dpkg -i $PWD/libaio1_0.3.107-7_amd64.deb 
dpkg -i $PWD/oracle-instantclient11.2-basic_11.2.0.3.0-2_amd64.deb 
echo "$TMP_ORACLE_HOME/lib" > /etc/ld.so.conf.d/oracle.conf 
echo "export ORACLE_HOME=$TMP_ORACLE_HOME" > /etc/profile.d/oracle.sh 
dpkg -i $PWD/cx-oracle_5.1.2-2-py32_amd64.deb 
cd /usr/lib/python3.2 
mv site-packages dist-packages 
ln -s dist-packages site-packages 
ldconfig 
+0

Это действительно помогло, но я до сих пор не могу получить модуль для загрузки правильно. Он не может найти то, что выглядит как основная библиотека '$ python3.3 Python 3.3.3 (по умолчанию, Dec 2 2013, 16:16:04) [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux Для получения дополнительной информации введите «помощь», «авторское право», «кредиты» или «лицензия». >>> импорт cx_Oracle Traceback (самый последний вызов последнего): Файл "", строка 1, в ImportError: libpython3.3m.so.1.0: не удается открыть общий объектный файл: Нет такого файла или каталога > >> 'Любые идеи? – SecondGear

0

Ничего я не мог решить эту проблему библиотеки. Хотя предложение Farhadix было полезно, я не мог пройти мимо этой ошибки при выполнении «импортного cx_Oracle»:

ImportError: libpython3.3m.so.1.0: cannot open shared object file: No such file or directory 

я в конечном итоге удаление пакета cx_Oracle (оборотов в минуту -e cx_Oracle-5.1.2-1.x86_64) и построив модуль из источника, следуя инструкциям от here. Это было то, что мне нужно было сделать, чтобы продлить работу на CentOS 6.4 с помощью python 3.3.

0

Я также столкнулся с этой ситуацией. Проблема была связана с разрешениями из-за установок, требующих разрешения «sudo» для «pip install».

Примечание: Я использую Oracle Linux 6, поэтому пробег может отличаться

Вот список каталогов, где cx_Oracle.so был послан следующий построить, так что вы можете увидеть по умолчанию разрешения (сравните cx_Freeze, например, которая имеет мировой доступ):

[[email protected] /]$ ll /usr/lib64/python2.6/site-packages 
total 4308 
drwxr-xr-x 5 root root 4096 Jan 17 09:48 cx_Freeze 
drwxr-x--- 2 root root 4096 Jan 17 11:30 cx_Oracle-5.1.2-py2.6.egg-info 
-rwxr-x--- 1 root root 351475 Jan 17 11:30 cx_Oracle.so 

Я мог бы определить этот вопрос со следующим, который выполняет питон как корень, а затем «импорт cx_Oracle» работает:

[[email protected] cx_OracleTools-8.0]$ sudo ORACLE_HOME=/usr/lib/oracle/11.2/client64 LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/lib/oracle/11.2/client64/lib python 
Python 2.6.6 (r266:84292, Oct 15 2013, 07:32:41) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import cx_Oracle 
>>> 

Итак ... Я ударил его по голове молотком ... и пусть мой пользователь владеет всем этим (это, по общему признанию, неправильное решение и может иметь более поздние последствия. - Я хотел бы услышать правильный способ, чтобы мой бродячий пользователю «пункт установить»

Надежда эта помощь, J

+0

Вы должны использовать virtualenv http://www.pythoncentral.io/how-to-install-virtualenv-python/ (я рекомендую использовать virtualenv с virtualenv-wrapper https://pypi.python.org/pypi/virtualenvwrapper). Затем у вас есть отдельные среды python, и вы можете 'pip install' в ваш virtualenv. – k107

Смежные вопросы