простая установка 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:
-
загрузите последнюю версию пакетов 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
.
-
установите RPMs с помощью alien. Например, на момент написания этой статьи:
$ sudo alien -i oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
-
добавить необходимые переменные среды (я лично поставил его в
/etc/environment
затем выход / обратно, чтобы перезагрузить env):ORACLE_HOME=/usr/lib/oracle/<version>/client64/lib/ LD_LIBRARY_PATH=/usr/lib/oracle/<version>/client64/lib/
-
$ 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
-
создать
/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
-
перезагрузите кэш ldconfig (используйте
-v
флаг, если вы хотите немного многословный):$ sudo ldconfig
возможно, Вам потребуется установить libaio1
.
как установить cx_Oracle
предполагая, что мы установили Oracle Instant Client 10, у вас есть разные Альтернативы для установки cx_Oracle:
- установить с Пип:
$ pip install cx_oracle
(только linux) - загрузка установщика/.смола.файл 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'
или Шаг 2 установить клиент oracle (32 бит или 64 бит зависит от версии python от шага 1)
- загрузите клиент oracle из http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win32soft-098987.html(link версия бита for32) загрузите и извлеките zip-файлы в одну папку
- в zip-файлы извлекаются в "установку" в этом случае
-
-
нажмите "Установить" и установите путь к каталогам "база" и "программное обеспечение"
- каталог программного обеспечения должен быть внутри базового каталога (рекомендуется)
в этом случае каталог "установлен" является базовым, а каталог "программное обеспечение" - для программного пути
установить Пути 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 для этих каталогов
- установите переменную среды с именем 'VS100COMNTOOLS' со значением как 'C:\Users\Administrator\AppData\Local\Programs\Common\Microsoft\Visual C++ для Python\9.0'
он должен укажите на каталог, содержащий пакетный файл 'vcvarsall'
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
- загрузите 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
установить ORACLE_HOME=C:\Python27\Scripts\instantclient_11_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