安装cx_oracle for python
我在Debian5上,我一直在尝试为python安装cx_oracle模块,但没有成功。首先,我安装了OracleXe客户端及其依赖项(遵循以下链接中的教程) 然后,我使用/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/bin中的脚本来填充环境变量,如PATH、oracle\u HOME和NLS\u LANG 完成后,我尝试运行:安装cx_oracle for python,python,oracle,Python,Oracle,我在Debian5上,我一直在尝试为python安装cx_oracle模块,但没有成功。首先,我安装了OracleXe客户端及其依赖项(遵循以下链接中的教程) 然后,我使用/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/bin中的脚本来填充环境变量,如PATH、oracle\u HOME和NLS\u LANG 完成后,我尝试运行: sudo easy_install cx_oracle 但我一直得到以下错误: Searching for
sudo easy_install cx_oracle
但我一直得到以下错误:
Searching for cx-oracle
Reading http://pypi.python.org/simple/cx_oracle/
Reading http://cx-oracle.sourceforge.net
Reading http://starship.python.net/crew/atuining
Best match: cx-Oracle 5.0.4
Downloading http://prdownloads.sourceforge.net/cx-oracle/cx_Oracle-5.0.4.tar.gz?download
Processing cx_Oracle-5.0.4.tar.gz
Running cx_Oracle-5.0.4/setup.py -q bdist_egg --dist-dir /tmp/easy_install-xsylvG/cx_Oracle-5.0.4/egg-dist-tmp-8KoqIx
error: cannot locate an Oracle software installation
你知道我错过了什么吗?我建议你抓取rpm文件,用alien安装它们。这样,您可以在以后运行
apt-get-purge-note-need
,我需要的唯一环境变量是LD\u LIBRARY\u PATH
,所以我做了:
echo export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client/lib >> ~/.bashrc
source ~/.bashrc
我假设在您的情况下,path变量将是
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib
另一种方式,不需要RPM。您需要是root
apt-get install python-dev build-essential libaio1
/opt/ora/
/etc/profile.d/oracle.sh
中创建一个文件,其中包括
export ORACLE_HOME=/opt/ora/instantclient_11_2
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME
/opt/ora/instantclient_11_2
在/etc/ld.so.conf.d/oracle.conf
中创建一个文件,其中包括
export ORACLE_HOME=/opt/ora/instantclient_11_2
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME
/opt/ora/instantclient_11_2
执行以下命令
sudo ldconfig
注意:您可能需要重新启动才能应用设置cd $ORACLE_HOME
ln -s libclntsh.so.11.1 libclntsh.so
cx\U Oracle
python软件包
- 您可以使用
pip
pip install cx_Oracle
- 或手动安装
下载与Python和Oracle版本相对应的。然后展开存档,并从提取的目录运行:
python setup.py build python setup.py install
Thx Burhan Khalid,我忽略了你的“你需要成为根”这句话,但当你不是根的时候,我找到了方法 在第7点,您需要使用:
sudo env ORACLE_HOME=$ORACLE_HOME python setup.py install
或
我想可能是sudo无法让ORACLE_回家,你可以这样做 sudovisudo 修改文本添加 默认环境保持+=“甲骨文主页” 然后 sudo python setup.py build安装
谢谢伯汉·哈立德。你的建议,使一个软链接,使我的安装最终工作 重述:
这些都没有在任何地方被记录下来,这是非常令人难以置信和非常令人沮丧的。我昨天花了3个多小时处理失败的构建,因为我不知道如何创建软链接。以下内容对我来说很有用,无论是在mac还是Linux上。这个命令应该下载所需的其他文件,而不需要设置环境变量
python -m pip install cx_Oracle --pre
注意,--pre选项用于开发和预发布Oracle驱动程序。截至发帖时,它正在抓取所需的
cx_Oracle-6.0rc1.tar.gz
。(我使用的是python 3.6)或者,您可以使用以下步骤安装cx\u Oracle模块,而不使用PIP
这对我来说在Ubuntu 16上很有效:
从Oracle网站下载('instantclient-basic-linux.x64-12.2.0.1.0.zip'和'instantclient sdk linux.x64-12.2.0.1.0.zip'),然后执行以下脚本(您可以逐段执行,我作为根用户执行):
您的python脚本现在可以使用“cx_Oracle”。。。享受吧 如果要在MAC中安装,只需解压缩下载的Oracle客户端,并将其放入编写python脚本的文件夹中即可。 它将开始工作 设置环境变量的问题太多了。 这对我有用 希望这有帮助 谢谢这对我很有用
python -m pip install cx_Oracle --upgrade
有关详细信息,请参阅《oracle快速入门指南》
尝试用以下代码重新安装:
!pip install --proxy http://username:windowspwd@10.200.72.2:8080 --upgrade --force-reinstall cx_Oracle
echo$ORACLE_HOME
output是什么?$ORACLE_HOME设置为/usr/lib/ORACLE/xe/app/ORACLE/product/10.2.0/client如果有疑问,请阅读官方文章,其中包含了比本文中许多答案都要多的最新信息。这可能与主题无关,因为我正在Mac OS X 10.9.2上构建它,并最终使它工作起来。除了Burhan在1-7中为构建路径和符号链接设置环境变量的提示之外,Oracle的动态库文件似乎有硬编码的链接路径!!!因此本文有点帮助:对于TL;DR,您需要创建另外两个符号链接来解决dlopen()错误。否则我们就好了!我在Ubuntu16.2(Docker)上完成了步骤1-5,所有步骤都成功了!!!谢谢节省了这么多时间…不要将ORACLE_HOME设置为Instant Client-这可能会导致在运行时读取错误的配置文件。旧的cx_Oracle安装在编译时需要它,但现在已经不是这样了。此外,新的即时客户端会自动创建sym链接,这样就可以省略该步骤。总之,只需遵循。您不需要在macOS上设置任何环境变量,因为苹果的SIP停止了DYLD_LIBRARY_路径的工作。从中,您只需运行mkdir~/lib;ln-s~/instantclient\u 18\u 1/libclntsh.dylib~/lib/
Instant Client 19 RPM将配置并运行ldconfig
,因此您无需设置LD\u LIBRARY\u路径。