Easy_install cx_Oracle (пакет python) в Windows
Итак, я нашел Справка по установке cx_Oracle, но я все еще застрял. Я загрузил последний экземпляр instantacient из oracle и установил ORACLE_HOME в расположение извлеченных файлов (как прямых, так и с папкой bin между значением ORACLE_HOME и файлами), но easy_install выдает ошибку при запуске setup.py, говоря, что он может " t найти файлы, содержащие Oracle. Я заметил, что только DLL 11g находится в папке, мне нужны все 3 драйвера для завершения установки? Если да, то где я могу их получить?
Ответы
Ответ 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)
шаг 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 ![ввести image description here]()
-
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
Примечание. Требуется, чтобы пользователь выполнил аутентификацию с помощью 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