Как заставить cx_Oracle работать на 64-битной Windows Itanium? - PullRequest
3 голосов
/ 08 января 2010

Я использую Windows Server 2003 на 64-битном сервере Itanium, который также работает под управлением 64-битной Oracle 10.2, и я хотел бы установить cx_Oracle для Python 2.5. Я много раз использовал cx_Oracle как для Windows, так и для Linux, и я также скомпилировал его ранее на 32-битных версиях этих платформ, но я никогда не пробовал компилировать IA64.

Ни одна из двоичных сборок cx_Oracle на http://cx -oracle.sourceforge.net / не является 64-битной, и я получаю сообщение об ошибке после установки любой из них при попытке запустить import cx_Oracle, поэтому я понять, что нужно сделать, это скомпилировать его из исходного кода.

При запуске python setup.py build я получаю сообщение об ошибке, что Python был собран с Visual Studio 2003 и что мне нужно что-то, что может создавать совместимые двоичные файлы. У меня Visual Studio 2005, которая, очевидно, не отвечает всем требованиям из-за ссылок на другую версию стандартной библиотеки C, а также, возможно, по другим причинам. К сожалению, Visual Studio 2003 больше не доступен для загрузки, и я не уверен, где его взять.

Поэтому я загружаю MinGW с http://sourceforge.net/projects/mingw/files/, но это также доступно только в 32-битной форме. Я все равно продолжаю пробовать, но во время компиляции выдает ошибку об одной из библиотек Oracle, которые я связываю с неверным форматом файла.

На данный момент у меня есть много вариантов, и я не уверен, где разместить свои усилия:

  1. Я мог бы загрузить 64-битный MinGW из http://sourceforge.net/projects/mingw-w64/ и попробовать использовать его, за исключением того, что он, кажется, доступен только в качестве исходного кода, поэтому мне придется скомпилировать компилятор, возможно, с использованием Visual Studio 2005

  2. Я мог бы попытаться использовать 32-разрядную сборку Python x86, а затем загрузить Oracle Instant Client SDK из http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html, а затем использовать ее для сборки cx_Oracle. Возможно, мне придется настроить клиент ORACLE_HOME на клиент, чтобы он не пытался связываться с 64-битными серверными DLL, но похоже, что он может работать.

  3. Я мог бы попытаться скомпилировать сам Python из исходного кода, используя Visual Studio 2005, чтобы затем я мог использовать Visual Studio 2005 для сборки cx_Oracle и не беспокоиться о проблемах двоичной совместимости. Я много раз компилировал Python из исходного кода для Linux, и у меня никогда не было проблем, поэтому я хотел бы верить, что в Windows все так же просто.

  4. Я мог бы попытаться выяснить, как связать Visual Studio 2005 с нужными DLL и, таким образом, создать совместимые двоичные файлы таким образом, не требуя Visual Studio 2003. Интуитивно кажется, что Visual Studio должна иметь возможность создавать совместимые двоичные файлы. с более старыми версиями, но почти весь мой опыт работы с компилятором связан с gcc, так что я не совсем знаю.

Я просто не уверен, куда направить свои усилия. У кого-нибудь есть предложения о том, куда идти дальше? Я могу скопировать / вставить некоторые конкретные сообщения об ошибках, которые я получил, если это будет полезно.

Мне бы очень хотелось услышать от всех, кто когда-либо заставлял cx_Oracle работать на 64-битной версии Windows для Itanium - я не могу быть первым, кто попробует это.

Ответы [ 2 ]

1 голос
/ 19 января 2010

В итоге я выбрал вариант № 2: я скачал 32-битный Oracle Instant Client, затем скомпилировал cx_Oracle для 32-битного Python с помощью мгновенного клиента. Таким образом, все задействовано 32-разрядно, и я просто не использую исполняемые файлы IA64, и это прекрасно работает.

Если бы у меня был компилятор IA64, я бы попробовал вариант № 3, но оказалось, что Visual Studio Pro не поддерживает платформу IA64, и нам пришлось бы потратить много денег, чтобы перейти на более высокий уровень. чем Pro.

0 голосов
/ 09 января 2010

Я прочитал это вчера и не удивлен, что никто не ответил. Это очень конкретный и сложный вопрос. Хотя у меня нет непосредственного опыта работы со многими инструментами, с которыми вы имеете дело, я разбираюсь с проблемами, связанными с несовместимостью различных компиляторов и двоичных файлов. Для чего стоит 3. звучит как ваша лучшая ставка.

...