在python程序中合并第三方库的最佳实践是什么?

时间:2011-05-02 21:14:12

标签: python python-module

下午好。

我正在为我的工作编写一个中小型python程序。该任务要求我使用Excel库 xlwt xlrd ,以及用于查询Oracle数据库的库,名为 cx_Oracle 。我正在通过版本控制系统开发项目,即CVS。

我想知道围绕python项目组织第三方库的标准方法是什么。库xlwt,xlrd和cx_Oracle是否应该存储在/ usr / local / lib / python这样的目录中,这个目录可能在PYTHONPATH中占有一席之地?或者第三方库应该与项目的源代码包含在同一目录中,有效地“运出”项目,这样python脚本就更加独立于平台。

我只是在寻找最佳实践,因为我来自Java并且是Python新手。

提前致谢,
KTM

1 个答案:

答案 0 :(得分:5)

您基本上有两个选项(就像您可能从Java中认识到的那样)。

一种方法是在应用程序中打包外部依赖项,这意味着您将所有依赖项复制到您的应用程序目录结构中。除非您必须能够发送单个安装或二进制文件,否则通常不建议这样做。在这种情况下,您必须能够处理所有支持的平台。

处理依赖项的更好方法是记录您的应用程序依赖项。一种方法是以pip格式定义requirements.txt文件,然后由pip install -r requirements.txt运行,该文件将继续安装所有依赖项。 Buildout是您可以选择的另一种选择。