我已经为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?
答案 0 :(得分:1)
这有点不重要。无论如何。请按照以下步骤操作:
1)从
下载适用于Windows x64的Oracle Instant Clienthttp://www.oracle.com/technetwork/topics/winx64soft-089540.html
e.g。选择客户端11.2.0.4
- > instantclient-basic-windows.x64-11.2.0.4.0.zip
- > instantclient-sdk-windows.x64-12.1.0.2.0.zip
2)创建目录并解压缩客户端& sdk在那里:
e.g。 C:\ ORA \ 11gx64
3)设置ORACLE_HOME和TNS_ADMIN
有关详细信息,请参阅https://superuser.com/questions/949560/how-do-i-set-system-environment-variables-in-windows-10
e.g。 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)
- >如果没有安装,请安装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,我的第一步是普遍的看法。
答案 1 :(得分:0)
我无法从pip3或conda安装cx_oracle。最终通过从pypi https://pypi.python.org/pypi/cx_Oracle/
下载Windows 64的安装程序来实现它