Проблема с установкой cx_Oracle в Linux — импорт работает только из каталога Site-Packages

Я установил cx_Oracle для соединения Python и Oracle для программирования; однако я могу импортировать cx_Oracle в python, только если я нахожусь в каталоге, где живет cx_Oracle. Как я могу импортировать cx_Oracle глобально? Ниже приведен код, демонстрирующий проблему.

Спасибо за вашу помощь.

Python не может импортировать cx_Oracle

user@T420 ~ $ python
Python 2.7.3 (default, Sep 26 2012, 21:51:14) 
[GCC 4.7.2] on linux2
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

Python может импортировать cx_Oracle из каталога, в котором он находится

user@T420 /usr/lib/python2.7/site-packages $ ls
cx_Oracle-5.1.2-py2.7.egg-info  cx_Oracle.so

user@T420 /usr/lib/python2.7/site-packages $ python
Python 2.7.3 (default, Sep 26 2012, 21:51:14) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cx_Oracle
>>> 

person Dan Geitner    schedule 26.04.2013    source источник
comment
Не могли бы вы еще раз проверить, что sys.path показывает в нем /usr/lib/python2.7/site-packages? У меня (Linux Mint, Debian), например, нет.   -  person Aaron Meier    schedule 26.04.2013
comment
А, я только что проверил это, а затем заглянул в site.py, чтобы узнать, что site-packages не является используемой папкой. Спасибо, Аарон. В итоге я решил проблему и опубликую ответ. По сути, мне пришлось переместить файлы в папку dist-packages.   -  person Dan Geitner    schedule 26.04.2013


Ответы (1)


Python в Debian не использует папку site-packages. Вы можете просто переместить файлы в папку dist-packages и все должно заработать. Другим решением, как упомянул Аарон, было бы добавить путь к сайтам-пакетам в папку sys.path. Однако в папке python site.py указано следующее:

Цитата из файла site.py:

Для Debian и производных этот sys.path дополнен каталогами для пакетов, распространяемых в дистрибутиве. Локальные надстройки помещаются в /usr/local/lib/python/dist-packages, надстройки Debian устанавливаются в /usr/{lib,share}/python/dist-packages. /usr/lib/python/site-packages не используется.

person RTPnomad    schedule 26.04.2013