在Windows上easy_install cx_Oracle(python包)

问题描述 投票:13回答:3

所以我找到了Help installing cx_Oracle,但仍然卡住了。我从oracle下载了最新的instantclient,并将ORACLE_HOME设置为解压缩文件的位置(直接和ORACLE_HOME值与文件之间的bin文件夹),但easy_install在运行setup.py时弹出错误说它可以'找到Oracle包含文件。我注意到文件夹中只有11g dll,我是否需要所有3个驱动程序才能完成设置?如果是这样,我在哪里获得它们?

python windows easy-install cx-oracle
3个回答
18
投票

老实说,从他们拥有的binary installers中安装cx_Oracle比从源代码安装cx_Oracle要容易得多。

HOWTO for *nix:

  1. 浏览到Instant Client for Linux x86 download page.
  2. 下载适合您的体系结构(32或64位)的基本,sqlplus和sdk软件包的最新版本: oracle-instantclient<version>-basic-<version_full>.<arch>.rpm oracle-instantclient<version>-sqlplus-<version_full>.<arch>.rpm oracle-instantclient<version>-devel-<version_full>.<arch>.rpm
  3. 使用外星人安装RPM。例如,在撰写本文时: $ sudo alien -i oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
  4. 添加必要的环境变量(我个人确实把它放在/etc/environment然后注销/重新加载env): ORACLE_HOME=/usr/lib/oracle/<version>/client64/lib/ LD_LIBRARY_PATH=/usr/lib/oracle/<version>/client64/lib/
  5. Fix oracle's includes$ 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
  6. 创建/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
  7. 重新加载ldconfig缓存(如果你想要一些详细的话,请使用-v标志): $ sudo ldconfig

您可能需要安装libaio1

HOWTO Install cx_Oracle

假设我们已经安装了Oracle Instant Client 10,您可以使用不同的替代方法来安装cx_Oracle

  1. 使用pip安装:$ pip install cx_oracle(仅限linux)
  2. cx_oracle PyPI站点下载installer / .tar.gz文件

旧版本(小于5.1.2的版本是.msi和.rpm文件)可以从here下载。使用外星人安装RPM。例如,在撰写本文时:$ sudo alien -i cx_Oracle-5.0-10g-py25-1.x86.rpm

要测试,python -c 'import cx_Oracle; print cx_Oracle'应该返回其版本的模块。


10
投票

第1步检查python是32位还是64位

import platform
platform.architecture()[0]#'32bit'

或者enter image description here第2步安装oracle客户端(32位或64位取决于步骤1中的python版本)

  • 从qazxsw poi下载oracle客户端获取32位版本)下载并将zip文件解压缩到一个文件夹中
  • 在这种情况下,zip文件被解压缩为“安装”
  • 该目录将显示为这个http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win32soft-098987.html(link 单击安装并设置“base”和“software”目录的路径 软件目录应该在基目录内(推荐) 在这种情况下,'installed'目录是base,'software'目录是用于软件路径 设置ORACLE_HOME路径: 将oracle主路径设置为'software'目录为'F:\ softwares \ oracle11g32 \ installed \ software' 在cmd中检查'echo%ORACLE_HOME%'以查看路径是否设置正确

步骤3为python 2.7安装vcforpython27或visual c ++ 2008 express edition

  • 从这里下载enter image description here(在这种情况下用这个来避免安装整个visual c ++ 2008,如下所述)
  • 它是一个小包,包含python 2.7的c ++编译器
  • (要么)
  • visual c ++ 2008 express edition(https://www.microsoft.com/en-sa/download/details.aspx?id=44266)[它将安装在1 GB左右]
  • vcforpython27将安装在'C:\ Users \ Administrator \ AppData \ Local \ Programs \ Common \ Microsoft'
  • 在Windows中启用显示隐藏文件夹到这些目录https://www.microsoft.com/en-sa/download/details.aspx?id=5582
  • 设置一个名为'VS100COMNTOOLS'的环境变量,其值为'C:\ Users \ Administrator \ AppData \ Local \ Programs \ Common \ Microsoft \ Visual C ++ for Python \ 9.0'
  • 它应该指向包含'vcvarsall'批处理文件enter image description here的目录
  • echo%VS100COMNTOOLS%以查看是否指向cmd中的正确目录
  • 并执行以下步骤:(来自:enter image description here
  • 转到C:/ Python27 / lib / distutils文件msvc9compiler.py。在其中找到函数find_vcvarsall并进行以下修改。用productdir = os.path.join(toolsdir)替换行:productdir = os.path.join(toolsdir,os.pardir,os.pardir,“VC”)这是vcvarsall.bat在这种情况下驻留的地方(check,其中vcvarsall.bat在你的安装中)。

安装cx_Oracle

error: Unable to find vcvarsall.bat

如果正确遵循上述所有步骤,那么它应该有效。想出这个问题花了很多痛苦。我希望它会有用。

建议运行:

 the easy step: pip install cx_oracle

1
投票
  1. 下载oracle即时客户端(适用于32位或64位archtitect和适当版本的Oracle(10g,11g,12g))。 pip install --upgrade setuptools from : https://stackoverflow.com/questions/2667069/cannot-find-vcvarsall-bat-when-running-a-python-script

注意:要求用户使用OTN(oracle tech网络帐户)进行身份验证。

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

  1. 设置ORACLE_HOME = C:\ Python27 \ Scripts \ instantclient_11_2
  2. python -m pip install cx_Oracle

成功输出:http://www.oracle.com/technetwork/topics/winx64soft-089540.html

© www.soinside.com 2019 - 2024. All rights reserved.