我尝试为 django 项目 sdu.edu.kz 安装 python 依赖项。该项目使用 cx-Oracle。当我尝试时:
./install_python_dependencies.sh install
它成功安装了除一个模块之外的所有模块。cx-Oracle 模块。但是,我在计算机上安装了 cx-Oracle 程序。
它打印错误:
Collecting cx-oracle==5.2 (from -r requirements/base.txt (line 82))
Using cached cx_Oracle-5.2.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-build-RP7c9i/cx-oracle/setup.py", line 170, in <module>
raise DistutilsSetupError("cannot locate an Oracle software " \
distutils.errors.DistutilsSetupError: cannot locate an Oracle software installation
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip build-RP7c9i/cx-oracle/
如何找到 Oracle 软件安装?有什么想法吗?请帮忙
答案1
对于 Oracle 12.x,cx_Oracle 尚不可用。因此我们需要下载 11.x 版本的即时客户端。
去http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html并接受许可协议。
然后下载以下名称的 zip 文件
- instantclient-sdk-linux.x64-11.2.0.4.0.zip
- instantclient-basic-linux.x64-11.2.0.4.0.zip
并使用 unzip 命令解压缩它们
unzip instantclient-sdk-linux.x64-11.2.0.4.0.zip
unzip instantclient-basic-linux.x64-11.2.0.4.0.zip
两者都将被提取到名为“instantclient_11_2”的公共目录中。然后使用以下命令将其添加到 PATH。
export ORACLE_HOME=/path-to_this/instantclient_11_2
cd $ORACLE_HOME
ln -s libclntsh.so.11.1 libclntsh.so
打开 /etc/profile 或 .bashrc 并查看以下条目。
export ORACLE_HOME=/location/of/your/files/instantclient_11_2
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME
然后做source ~/.bashrc
或source /etc/profile
并安装这些软件包
sudo apt-get install build-essential unzip python-dev libaio-dev
之后根据你的 Python 版本使用pip
或安装它pip3
pip3 install cx_Oracle
并尝试cx_Oracle
在 Python 解释器中加载模块。
希望这可以帮助。
信用如下:https://gist.github.com/kimus/10012910
注意:我已经在我的 Ubuntu 16.04 安装上尝试过这个,它应该对你有用。