Вопрос

Я пытаюсь установить cx_Oracle для Python 2.6, но это не удается.Я недостаточно разбираюсь в C или MS Vis.Компилятор Studio даже приблизился к исправлению этого самостоятельно.

Это то, что выводится в командной строке:

C:\pydev\cx_Oracle-5.0.1>C:\python26\python setup.py install
running install
running build
running build_ext
building 'cx_Oracle' extension
C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -IC:\Oracle\instantclient\sdk\include -IC:\p
ython26\include -IC:\python26\PC /Tccx_Oracle.c /Fobuild\temp.win32-2.6-11g\Release\cx_Oracle.obj -DBUILD_VERSION=5.0.1
cx_Oracle.c
c:\pydev\cx_oracle-5.0.1\StringVar.c(392) : warning C4018: '>' : signed/unsigned mismatch
c:\pydev\cx_oracle-5.0.1\StringVar.c(417) : warning C4018: '>' : signed/unsigned mismatch
c:\pydev\cx_oracle-5.0.1\ObjectVar.c(117) : warning C4018: '<' : signed/unsigned mismatch
c:\pydev\cx_oracle-5.0.1\ObjectVar.c(134) : warning C4018: '<' : signed/unsigned mismatch
c:\pydev\cx_oracle-5.0.1\Variable.c(331) : error C2036: 'void *' : unknown size
c:\pydev\cx_oracle-5.0.1\Variable.c(878) : warning C4244: '=' : conversion from 'sb2' to 'sb1', possible loss of data
c:\pydev\cx_oracle-5.0.1\Variable.c(914) : warning C4018: '<' : signed/unsigned mismatch
error: command '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.exe"' failed with exit status 2

У кого-нибудь есть какие-нибудь идеи, как это исправить?(У меня также может быть проблема с этим cl.exe файлом, я думаю, я помню, что видел это как проблему где-то еще, но у меня есть четыре компьютера с Windows, на которых могла возникнуть проблема.).

----------------------------- РЕДАКТИРОВАТЬ -----------------------------

Причина, по которой я не использую предварительно скомпилированный установщик, заключается в том, что при попытке запустить модуль я получаю следующее:

    Python 2.6.3 (r263rc1:75186, Oct  2 2009, 20:40:30) [MSC v.1500 32 bit (Intel)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import cx_Oracle
    Traceback (most recent call last):
      File "", line 1, in 
    ImportError: DLL load failed: The specified module could not be found.

Я предполагаю, что это означает, что он не был установлен должным образом.Если кто-нибудь может сказать мне, что я здесь сделал не так, это также было бы вполне приемлемым ответом.

----------------------------- РЕДАКТИРОВАТЬ 2 -----------------------------

Я восстановил ВСЕ файлы из Базовый клиент Oracle версия 11.1.0.7.Я не пробовал устанавливать более солидный клиент.Сейчас я скачиваю один из них.

%ORACLE_HOME%=C:\Oracle\instantclient\ #The directory where the above files have been extracted.

Дополнительная информация

  • Текущий каталог для cx_Oracle setup.py является C:\pydev\cx_Oracle-5.0.1
  • Версия Python - 2.6.3
  • Текущий каталог для Python C:\Python26 - для доступа к python 2.6 -> введите py26 в командной строке, и он отобразится в C:\python26\python
Это было полезно?

Решение

Почему бы вам не использовать двоичный пакет, например Установщик Windows (Oracle 10g, Python 2.6)?

Видеть http://cx-oracle.sourceforge.net/ для других бинарных пакетов


Дополнение (по запросу):вы должны убедиться, что используете cx_Oracle, который:

  • установите ORACLE_HOME, если эта переменная среды не существует (см. Часто задаваемые вопросы по Oracle)
  • питон может найти oraocci11.dll для Oracle 11g, oraocci10.dll для Oracle 10g или oraclient9.dll для Oracle 9i, добавив папку (должна быть %ORACLE_HOME%/bin), где находится DLL, в переменную среды PATH
  • используйте правильный двоичный пакет (т.создан для правильных версий Python/Oracle)

Другие советы

Вам также нужен какой-то тип клиента Oracle, установленный на вашем компьютере, поскольку cx_Oracle - это всего лишь мост между Python и клиентом Oracle.Допустимые клиенты Oracle включают полную установку Oracle (например, Standard или XE) или Мгновенный Клиент

Из самого ПРОЧИТАЙ МЕНЯ:

Пожалуйста, обратите внимание, что для использования cx_Oracle требуется установка клиента Oracle (или сервера).Если вам не требуются инструменты, поставляемые с полной установкой клиента, рекомендуется установить Instant Client, который намного проще в установке.

Я раньше не устанавливал Windows, но вам, возможно, придется установить переменную среды ORACLE_HOME, чтобы cx_Oracle знал, где искать.

Если вы используете Anaconda Python x64, все будет так: Полегче:

conda install -c https://conda.anaconda.org/anaconda cx_oracle

(Он установит правильный клиент Oracle)


Если вы получили следующую ошибку:

[Anaconda2] C:\Users\User>conda install -c https://conda.anaconda.org/anaconda c
x_oracle
Using Anaconda Cloud api site https://api.anaconda.org
Fetching package metadata: ......
Solving package specifications: .................
Package plan for installation in environment C:\Anaconda2:

The following NEW packages will be INSTALLED:

    cx_oracle:            5.1.2-py27_0
    oracle-instantclient: 11.2.0.4.0-0

The following packages will be UPDATED:

    conda:                3.19.1-py27_0 --> 4.0.5-py27_0
    pip:                  8.0.2-py27_0  --> 8.1.1-py27_0
    pyyaml:               3.11-py27_2   --> 3.11-py27_3
    setuptools:           19.6.2-py27_0 --> 20.3-py27_0
    wheel:                0.26.0-py27_1 --> 0.29.0-py27_0

Proceed ([y]/n)? y

Unlinking packages ...
An unexpected error has occurred, please consider sending the            |   0%
following traceback to the conda GitHub issue tracker at:

    https://github.com/conda/conda/issues

Include the output of the command 'conda info' in your report.


Traceback (most recent call last):
  File "C:\Anaconda2\Scripts\conda-script.py", line 4, in <module>
    sys.exit(main())
  File "C:\Anaconda2\lib\site-packages\conda\cli\main.py", line 173, in main
    args_func(args, p)
  File "C:\Anaconda2\lib\site-packages\conda\cli\main.py", line 180, in args_fun
c
    args.func(args, p)
  File "C:\Anaconda2\lib\site-packages\conda\cli\main_install.py", line 45, in e
xecute
    install.install(args, parser, 'install')
  File "C:\Anaconda2\lib\site-packages\conda\cli\install.py", line 423, in insta
ll
    plan.execute_actions(actions, index, verbose=not args.quiet)
  File "C:\Anaconda2\lib\site-packages\conda\plan.py", line 538, in execute_acti
ons
    inst.execute_instructions(plan, index, verbose)
  File "C:\Anaconda2\lib\site-packages\conda\instructions.py", line 148, in exec
ute_instructions
    cmd(state, arg)
  File "C:\Anaconda2\lib\site-packages\conda\instructions.py", line 95, in UNLIN
K_CMD
    install.unlink(state['prefix'], arg)
  File "C:\Anaconda2\lib\site-packages\conda\install.py", line 714, in unlink
    os.unlink(meta_path)
WindowsError: [Error 5] Access is denied: 'C:\\Anaconda2\\conda-meta\\conda-3.19
.1-py27_0.json'

[Anaconda2] C:\Users\User>

Попробуйте запустить приглашение Anaconda от имени администратора:

enter image description here

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top