Python中文
首页
教程
问答
标签
搜索
登录
注册
cx_Oracle无法识别要在Linux上安装的Oracle软件的位置
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我已经成功地在我的Windows 8笔记本电脑上安装了用于Python 3.4的cx_Oracle,现在我正试图在Linux机器上安装相同的设置(cx_Oracle with python3.4)。从cx_Oracle-5.1.3.tar.gz运行setup.py文件时,出现以下错误:</p> <pre><code> sudo python3 setup.py install Traceback (most recent call last): File "setup.py", line 135, in <module> raise DistutilsSetupError("cannot locate an Oracle software " \ distutils.errors.DistutilsSetupError: cannot locate an Oracle software installation </code></pre> <p>根据我看到的其他一些答案(<a href="https://stackoverflow.com/questions/11245985/easy-install-cx-oracle-python-package-on-windows?lq=1">easy_install cx_Oracle (python package) on Windows</a>,<a href="https://gist.github.com/jarshwah/3863378" rel="nofollow noreferrer">https://gist.github.com/jarshwah/3863378</a>),我安装了这3个即时客户端RPM:</p> <pre><code>rpm -ivh oracle-instantclient12.1-basic-12.1.0.2.0-1.i386.rpm rpm -ivh oracle-instantclient12.1-devel-12.1.0.2.0-1.i386.rpm rpm -ivh oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.i386.rpm </code></pre> <p>然后我将ORACLE_HOME设置为它们安装到的文件夹,这将帮助python识别ORACLE文件的位置,以便它能够正确地进行安装。</p> <p>每次尝试运行setup.py文件时,仍然会出现相同的“找不到Oracle软件安装”错误。</p> <p>知道我需要做什么才能成功安装cx_oracle吗?</p> <p><strong>更新以获取更多信息:</strong></p> <p>echo$ORACLE_HOME返回<code>/instantclient_12_1</code>,这是安装rpm文件的位置。</p> <p>这是my/instantclient_12_1目录的内容:</p> <pre><code>adrci libnnz12.so libsqlplusic.so tnsnames.ora BASIC_README libocci.so libsqlplus.so tnsnames.ora_andy genezi libocci.so.12.1 ojdbc6.jar uidrvci glogin.sql libociei.so ojdbc7.jar xstreams.jar libclntshcore.so.12.1 libocijdbc12.so sdk libclntsh.so libons.so sqlplus libclntsh.so.12.1 liboramysql12.so SQLPLUS_README </code></pre> <p>这与我的Windows 8安装目录有点不同,它有<code>.dll</code>和<code>.sym</code>文件,比如<code>orasql12.dll</code>。即时客户端安装的Linux版本应该有不同的文件吗?</p> <p><strong>用部分解决方案更新:</strong></p> <p>我找到了一个正确安装了cx_Oracle的解决方案,但仅在该shell实例中:</p> <p>我设置了以下两个环境变量:</p> <pre><code>export ORACLE_HOME=/instantclient_12_1 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME </code></pre> <p>然后我创建了一个符号链接:</p> <pre><code>ln -s libclntsh.so.12.1 libclntsh.so </code></pre> <p>之后,转到<code>cx_oracle</code>文件夹并执行此操作:</p> <pre><code>python3 setup.py build python3 setup.py install </code></pre> <p>出于某种原因,<code>sudo python3 setup.py install</code>不适用于此。</p> <p><strong>更新相关问题的链接:</strong></p> <p>我的下一个问题是让环境变量保持在shell实例之外,这样我就不必每次都定义环境变量了。当我回显profile.d中的环境变量时,它们会显示出来,但是python无法正确导入cx_oracle,出于某种原因,我不得不再次导出环境变量。我不知道发布与某个问题相关的其他问题的正确步骤,所以我在这里打开了一个新问题:</p> <p><a href="https://stackoverflow.com/questions/31009151/linux-profile-d-environment-variables-dont-work-with-cx-oracle-in-python">Linux profile.d environment variables don't work with cx_oracle in Python</a></p> <p>请帮我解决这个问题,我觉得完全被困在什么努力使它工作。当我回显环境变量时,它们会显示出来,但只有在运行python代码之前再次导出它们时,它们才看起来是功能性的。</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>当我试图在Ubuntu 16.04 with python 2.7.12和Oracle client 12.1.0.2中单独安装带有LD_LIBRARY_PATH变量的cx_Oracle时,pip安装失败,正在查找Oracle 12.1.0.2 client中不再可用的头文件。它与LDúRUNúPATH一起工作</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
plt.savefig不会覆盖现有文件
4 回答
plt.savefig不保存图像
4 回答
plt.savefig在jupyter笔记本中不起作用
8 回答
plt.savefig在从另一个fi调用时停止工作
5 回答
plt.savefig在调用plt.show之前保存空数字
1 回答
plt.save不创建png文件
9 回答
plt.scatter overlay分类数据帧列
1 回答
Plt.Scatter:如何添加title、xlabel和ylab
10 回答
plt.scatter()绘图与Matplotlib中的plt.plot()绘图类似
6 回答
plt.scatter错误'NoneType'对象在成功运行后没有属性'sqrt'
2 回答
plt.set_title()中的标题字符串有误
9 回答
plt.show()
10 回答
plt.show()不在Jupyter笔记本上渲染任何内容
7 回答
plt.show()不打印plt.plot only plt.scatter
3 回答
plt.show()不显示三维散射图像
10 回答
plt.show()不显示任何内容
3 回答
plt.show()不显示数据,而是保留它供下一个图表使用(spyder)
5 回答
plt.show()使终端挂起
9 回答
plt.show()无法使用此代码
7 回答
plt.show()没有打开新的图形风
1 回答