Итак, я нашел Справка по установке cx_Oracle, но я все еще застрял. Я загрузил последний экземпляр instantacient из oracle и установил ORACLE_HOME в расположение извлеченных файлов (как прямых, так и с папкой bin между значением ORACLE_HOME и файлами), но easy_install выдает ошибку при запуске setup.py, говоря, что он может " t найти файлы, содержащие Oracle. Я заметил, что только DLL 11g находится в папке, мне нужны все 3 драйвера для завершения установки? Если да, то где я могу их получить?
Easy_install cx_Oracle (пакет python) в Windows
Ответ 1
Честно говоря, намного проще установить cx_Oracle из одного из двоичных установщиков, чем у источника.
HOWTO для * nix:
-
Перейдите к странице загрузки Instant Client для Linux x86.
-
Загрузите последнюю версию базовых пакетов sqlplus и sdk, соответствующих вашей архитектуре (32 или 64 бит):
-
oracle-instantclient<version>-basic-<version_full>.<arch>.rpm
-
oracle-instantclient<version>-sqlplus-<version_full>.<arch>.rpm
-
oracle-instantclient<version>-devel-<version_full>.<arch>.rpm
.
-
-
Установите RPM с помощью чужой. Например, на момент написания этой статьи:
$ 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
.
HOWTO Установите cx_Oracle
Предполагая, что мы установили Oracle Instant Client 10, у вас есть разные альтернативы для установки cx_Oracle:
- Установить с pip:
$ pip install cx_oracle
(только для Linux) - Загрузите файл installer/.tar.gz с сайта cx_oracle PyPI
Более старые версии (версии менее 5.1.2 - файлы .msi и .rpm) можно загрузить с здесь. Установите RPM с помощью чужой. Например, на момент написания этой статьи: $ sudo alien -i cx_Oracle-5.0-10g-py25-1.x86.rpm
Чтобы проверить, python -c 'import cx_Oracle; print cx_Oracle'
должен вернуть модули своей версией.
Ответ 2
шаг 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 для 32-разрядной версии) загружать и извлекать zip файлы в одной папке
- zip файлы извлекаются в 'installation' в этом случае
-
каталог будет выглядеть следующим образом:
-
щелкните по установке и установите путь к каталогам "base" и "software"
- каталог программного обеспечения должен находиться внутри базового каталога (рекомендуется)
-
в этом случае каталог "установлен" является базовым, а "программное обеспечение" - для пути к программному обеспечению.
-
установить путь ORACLE_HOME:
-
установить исходный путь oracle в директорию 'software' как 'F:\softwares\oracle11g32\installed\software'
- в cmd проверить 'echo% ORACLE_HOME%', чтобы убедиться, что путь установлен правильно
-
шаг 3 установить vcforpython27 или Visual С++ 2008 express edition для python 2.7
-
скачать его здесь https://www.microsoft.com/en-sa/download/details.aspx?id=44266 (в этом случае используется, чтобы избежать установки всего Visual С++ 2008, как указано в ниже)
-
это небольшой пакет, содержащий компиляторы С++ для python 2.7
-
(или)
-
Visual С++ 2008 express edition (https://www.microsoft.com/en-sa/download/details.aspx?id=5582) [это будет около 1 ГБ установки]
-
vcforpython27 будет установлен на 'C:\Users\Administrator\AppData\Local\Programs\Common\Microsoft'
- установить переменную среды с именем "VS100COMNTOOLS" со значением как "C:\Users\Administrator\AppData\Local\Programs\Common\Microsoft\Visual С++ для Python\9.0 '
-
он должен указывать на каталог, содержащий командный файл vcvarsall
-
echo% VS100COMNTOOL%, чтобы увидеть, указывает ли он на правый каталог в cmd
-
И выполните следующие действия: (from: ошибка: не удалось найти vcvarsall.bat)
-
перейдите в C:/Python27/lib/distutils файл msvc9compiler.py. Найдите в нем функцию find_vcvarsall и выполните следующую модификацию. Замените линию: productdir = os.path.join(toolsdir, os.pardir, os.pardir, "VC" ) с productdir = os.path.join(toolsdir) Это где vcvarsall.bat находится в этом случае (проверьте, где 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
Ответ 3
- Загрузите мгновенный клиент oracle (для 32-битного или 64-битного архитектора и соответствующей версии Oracle (10g, 11g, 12g)). http://www.oracle.com/technetwork/topics/winx64soft-089540.html
Примечание. Требуется, чтобы пользователь выполнил аутентификацию с помощью OTN (сетевой учетной записи oracle tech).
1,1. Загрузите и распакуйте "Мгновенный клиентский пакет - базовый" в C:\python27\Scripts\instantclient_11_2 например instantclient-basic-windows.x64-11.2.0.4.0.zip
1,2. Загрузите и распакуйте "Мгновенный клиентский пакет - 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 install 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\wheels\7c\5f\96\ cd273c9b675bc7c28ae249b74d1f7df5d3eacba9e918715225
Successfully built cx-Oracle
Installing collected packages: cx-Oracle
Successfully installed cx-Oracle-5.2.1