所以我发现帮助安装cx_Oracle,但我仍然坚持。 我从oracle下载了最新的instantclient,并将ORACLE_HOME设置为解压缩文件的位置(包括ORACLE_HOME值和文件之间的bin文件夹),但easy_install在运行setup.py时popup一个错误,findOracle包含文件。 我没有注意到,只有11克DLL是在文件夹中,我需要所有3个驱动程序存在设置才能完成? 如果是这样,我甚至可以在哪里得到它们?
说实话,从一个二进制安装程序安装cx_Oracle比从源代码安装要容易得多。
浏览到Instant Client for Linux x86下载页面。
下载适合您的体系结构(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
。 使用外来程序安装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/
修复oracle的包括 :
$ 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
。
假设我们安装了Oracle Instant Client 10,则可以使用不同的方法来安装cx_Oracle :
$ pip install cx_oracle
(仅限linux) 旧版本(小于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'
python -c 'import cx_Oracle; print cx_Oracle'
应该返回与它的版本的模块。
第1步检查python是32位还是64位
import platform platform.architecture()[0]#'32bit'
要么 第2步安装oracle客户端(32位或64位取决于从第1步的python版本)
该目录将出现像这样
点击安装,并将路径设置为“基本”和“软件”目录
在这种情况下,“安装”目录是基础的,“软件”目录是软件路径
设置ORACLE_HOME路径:
将“软件”目录的oracle主路径设置为“F:\ softwares \ oracle11g32 \ installed \ software”
第3步安装vcforpython27或Visual C ++ 2008快速版for python 2.7
从这里下载https://www.microsoft.com/en-sa/download/details.aspx?id=44266 (在这种情况下使用这个来避免安装整个visual c ++ 2008,如下所述)
它是一个包含python 2.7的c ++编译器的小软件包
(要么)
visual c + + 2008年快速版( https://www.microsoft.com/en-sa/download/details.aspx?id=5582 )[它将围绕1 GB的安装]
vcforpython27将安装在'C:\ Users \ Administrator \ AppData \ Local \ Programs \ Common \ Microsoft'
在窗口中启用显示隐藏文件夹到这些目录
它应该指向包含'vcvarsall'批处理文件的目录
echo%VS100COMNTOOL%看看是否指向cmd中的正确目录
并执行以下步骤:(从: 错误:无法找到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驻留在这种情况下的地方(check,其中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
注意:需要用户通过OTN(Oracle技术网络帐户)进行认证。
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
设置ORACLE_HOME = C:\ Python27 \ Scripts \ instantclient_11_2
python -m pip安装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