2

我下载了 cx_oracle 5.2.1 并开始构建:

  python setup.py build

我注意到它在我的系统中找到了构建依赖项,而我没有给出任何规范。我想更好地了解它是如何做到的。setup.py 中的内容不表示任何此类信息。

4

1 回答 1

0

我现在没有 cx_Oracle 的 setup.py 的源代码,但是在它包含的 BUILD.txt 文件中,它提到了一些环境变量的使用:

必须在 $HOME/.profile 中设置环境变量 ORACLE_HOME 和 LD_LIBRARY_PATH 以便 cx_Oracle 在安装后正确导入并正确构建。使用文本编辑器将以下设置添加到 $HOME/.profile 确保更改实际安装路径的位置。

Example ($HOME/.profile):
-------------------------
export ORACLE_HOME=[your installation path]/instantclient_11_1
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME

这来自 Linux 提示部分,我记得我必须设置相同的东西才能在 Windows 下构建它。

至于它如何找到更多的标准库。我认为这是distutils模块的魔力的一部分。在 unix 下 distutils 似乎只要通过你的 unix 的标准打包机制安装了所需的库和头文件就可以正常工作。这可能是因为 unix 有更好的标准化方法来定位构建资源(例如 Windows)。

我知道当我被迫在 Windows 下编译 Python 包时,我经常不得不明确告诉它在哪里可以找到头文件和库。在不得不出去找到所说的库并手动编译它们之后。

于 2012-09-20T22:11:58.133 回答