我已经为Windows 64位安装了Anaconda 3.5,我需要使用软件包“cx_Oracle”连接到Oracle数据库。
我尝试使用anaconda方式:
conda install -c https://conda.anaconda.org/anaconda cx_oracle
以下错误消息:
Hint: the following packages conflict with each other:
- cx_oracle
- python 3.5*
Use 'conda info cx_oracle' etc. to see the dependencies for each package.
Note that the following features are enabled:
- vc14
似乎cx_oracle与Python 3.5不兼容。
在此之后,我还尝试直接使用二进制文件安装:
python setup.py install
它抛出了一堆错误,如:
cx_Oracle.obj : error LNK2001: unresolved external symbol OCILobGetChunkSize
cx_Oracle.obj : error LNK2001: unresolved external symbol OCIStmtExecute
cx_Oracle.obj : error LNK2001: unresolved external symbol OCILobFileClose
有没有办法为Anaconda 3.5安装cx_oracle?
这有点不重要。无论如何。跟着这些步骤:
1)从中下载适用于Windows x64的Oracle Instant Client
http://www.oracle.com/technetwork/topics/winx64soft-089540.html
EG选择pl。 11.2.0.ch
-> instant client-BASIC-Windows.小64-11.2.0.4.0.zip
-> instant client-速度快-Windows.小64-12.1.0.2.0.zip
2)创建目录并在其中解压缩客户端和sdk:
例如C:\现在\ 11gx64
3)设置ORACLE_HOME和TNS_ADMIN
有关详细信息,请参阅https://superuser.com/questions/949560/how-do-i-set-system-environment-variables-in-windows-10
例如ORACLE_HOME = C:\ ORA \ 11gx64
和TNS_ADMIN = c:\ ora \ 11gx64
还要在%PATH%中添加%ORACLE_HOME%
4)在创建的目录中输入文件tnsnames.ora并将连接字符串填充到db:
%ORACLE_HOME%** ** tnsnames.ora中
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
- >用您的主机名替换127.0.0.1
- >用你的SID替换XE
5)我想你已经安装了Python。
- >请访问Python的下载页面
- >安装python(编写时为3.6.1)
- >如果没有安装install pip(https://pip.pypa.io/en/stable/installing/#do-i-need-to-install-pip)
- >执行python get-pip.py
6)下载并安装Visual C ++ 2015构建工具
- >搜索Visual C ++ 2015构建工具 - >安装visualcppbuildtools_full.exe
7)使用pip安装cx_oracle
pip install cx_oracle
(在编写本文时,默认安装版本5.3存在问题,因此必须安装版本6.0b2)
python -m pip install cx_Oracle --pre
对于conda和pip,我的第一步是普遍的看法。
我无法从pip3或conda安装cx_oracle。最终通过从pypi https://pypi.python.org/pypi/cx_Oracle/下载Windows 64的安装程序来实现它