простая установка CX Oracle (пакет python) в Windows

Я нашел справка по установке cx_Oracle но я все еще застрял. Я загрузил последний instantclient из oracle и установил ORACLE_HOME в местоположение извлеченных файлов (как прямых, так и с папкой bin между значением ORACLE_HOME и файлами), но easy_install выдает ошибку при запуске setup.py говоря, что он не может найти файлы Oracle include. Я заметил, что только dll 11g находится в папке, мне нужны все драйверы 3 для завершения установки? Если так где я их возьму?

3 ответов


честно говоря, намного проще установить cx_Oracle из одного из бинарные монтажники у них есть, чем из источника.

HOWTO для *nix:

  1. обзор мгновенный клиент для Linux x86 страница загрузки.

  2. загрузите последнюю версию пакетов basic, sqlplus и sdk, которые соответствуют вашей архитектуре (32 или 64bits):

    • oracle-instantclient<version>-basic-<version_full>.<arch>.rpm
    • oracle-instantclient<version>-sqlplus-<version_full>.<arch>.rpm
    • oracle-instantclient<version>-devel-<version_full>.<arch>.rpm.
  3. установите RPMs с помощью alien. Например, на момент написания этой статьи:

    $ sudo alien -i oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
    
  4. добавить необходимые переменные среды (я лично поставил его в /etc/environment затем выход / обратно, чтобы перезагрузить env):

    ORACLE_HOME=/usr/lib/oracle/<version>/client64/lib/
    LD_LIBRARY_PATH=/usr/lib/oracle/<version>/client64/lib/
    
  5. исправить oracle включает:

    $ sudo ln -s /usr/include/oracle/<version>/client $ORACLE_HOME/include  # for 32bits arch, OR
    $ sudo ln -s /usr/include/oracle/<version>/client64 $ORACLE_HOME/include  # for 64bits arch
    
  6. создать /etc/ld.so.conf.d/oracle-instantclient<version>-basic.conf и /etc/ld.so.conf.d/oracle.conf (для более поздних версий, по крайней мере, с 12.1), содержащий:

      /lib  
      /usr/lib/oracle/<version>/client/lib  ; for 32bits arch, OR
      /usr/lib/oracle/<version>/client64/lib  ; for 64bits arch
    
  7. перезагрузите кэш ldconfig (используйте -v флаг, если вы хотите немного многословный):

    $ sudo ldconfig
    

возможно, Вам потребуется установить libaio1.

как установить cx_Oracle

предполагая, что мы установили Oracle Instant Client 10, у вас есть разные Альтернативы для установки cx_Oracle:

  1. установить с Пип: $ pip install cx_oracle (только linux)
  2. загрузка установщика/.смола.файл GZ от cx_oracle PyPI сайт

более старые версии (Версия меньше чем 5.1.2 .msi и .rpm files) можно скачать с здесь. Установите RPMs с помощью alien. Например, на момент написания этой статьи: $ sudo alien -i cx_Oracle-5.0-10g-py25-1.x86.rpm

чтобы проверить, python -c 'import cx_Oracle; print cx_Oracle' должен возвращать модули со своей версией.


Шаг 1 проверьте, что python 32 бит или 64

import platform
platform.architecture()[0]#'32bit'

или enter image description here Шаг 2 установить клиент oracle (32 бит или 64 бит зависит от версии python от шага 1)

  • загрузите клиент oracle из http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win32soft-098987.html(link версия бита for32) загрузите и извлеките zip-файлы в одну папку
  • в zip-файлы извлекаются в "установку" в этом случае
  • - каталог будет выглядеть так enter image description here

    • нажмите "Установить" и установите путь к каталогам "база" и "программное обеспечение"

      • каталог программного обеспечения должен быть внутри базового каталога (рекомендуется)
      • в этом случае каталог "установлен" является базовым, а каталог "программное обеспечение" - для программного пути

      • установить Пути ORACLE_HOME, т.:

      • установите домашний путь oracle в каталог "программное обеспечение" как "F:\softwares\oracle11g32\installed\software'

      • в cmd проверьте " echo %ORACLE_HOME%", чтобы узнать, правильно ли установлен путь

Шаг 3 установите vcforpython27 или Visual C++ 2008 express edition для python 2.7

  • загрузите его отсюда https://www.microsoft.com/en-sa/download/details.aspx?id=44266 (используется в этом случае, чтобы избежать установки всего visual c++ 2008, как указано ниже)

  • Это небольшой пакет, который содержит компиляторы C++ для Python 2.7

  • (или)

  • visual c++ 2008 express edition (https://www.microsoft.com/en-sa/download/details.aspx?id=5582) [это будет около 1 ГБ установка]

  • vcforpython27 будет установлен на 'C:\Users\Administrator\AppData\Local\Programs\Common\Microsoft'

  • включить показать скрытую папку в windows для этих каталогов enter image description here

  • установите переменную среды с именем 'VS100COMNTOOLS' со значением как 'C:\Users\Administrator\AppData\Local\Programs\Common\Microsoft\Visual C++ для Python\9.0'
  • он должен укажите на каталог, содержащий пакетный файл 'vcvarsall'enter image description here

  • echo %VS100COMNTOOL%, чтобы узнать, указывает ли он на правильный каталог в cmd

  • и выполните следующие действия: (от:ошибка: не удалось найти vcvarsall.летучая мышь!--10--> )

  • перейти к C:/Python27/lib/distutils файл msvc9compiler.py - ... Найдите в нем функцию find_vcvarsall и сделайте следующую модификацию. Заменить линия: productdir = os.путь.join (toolsdir, os.пардир, ОС.пардир, " ВК") с productdir = os.путь.соединение (toolsdir) Это где vcvarsall.летучая мышь находится в этом случае (проверьте, где vcvarsall.bat находится в вашей установке).

установить cx_Oracle

 the easy step: pip install cx_oracle

если все вышеперечисленные шаги выполняются правильно, то он должен работать. Потребовалось много боли, чтобы понять это. Надеюсь, это будет полезно.

рекомендовано беги:

 pip install --upgrade setuptools
 from : https://stackoverflow.com/questions/2667069/cannot-find-vcvarsall-bat-when-running-a-python-script

  1. загрузите oracle instant client (для 32-битного или 64-битного archtitect и соответствующей версии Oracle (10g,11g,12g)). http://www.oracle.com/technetwork/topics/winx64soft-089540.html

Примечание: требуется аутентификация пользователя с помощью OTN (учетная запись oracle tech network).

1.1. Скачать и распаковать "Instant Client Package-Basic" на C:\Python27\Scripts\instantclient_11_2 например. instantclient-basic-windows.x64-11.2.0.4.0.zip

1.2. Загрузите и распакуйте "Instant Client Package-SDK" в C:\Python27\Scripts\instantclient_11_2 например. instantclient-sdk-windows.x64-11.2.0.4.0.zip

  1. установить ORACLE_HOME=C:\Python27\Scripts\instantclient_11_2

  2. python-m pip установить cx_Oracle

выход на успех: Collecting cx_Oracle Using cached cx_Oracle-5.2.1.tar.gz Building wheels for collected packages: cx-Oracle Running setup.py bdist_wheel for cx-Oracle ... done Stored in directory: C:\Users\m315468\AppData\Local\pip\Cache\wheelscf\ cd273c9b675bc7c28ae249b74d1f7df5d3eacba9e918715225 Successfully built cx-Oracle Installing collected packages: cx-Oracle Successfully installed cx-Oracle-5.2.1