2011-05-02 110 views
3

下午好。将第三方库合并到python程序中的最佳做法是什么?

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

我想知道围绕python项目组织第三方库的标准方法是什么。库xlwt,xlrd和cx_Oracle应该存储在/ usr/local/lib/python目录中,这大概在PYTHONPATH中有位置?或者应该将第三方库与项目的源代码一起包含在相同的目录中,从而有效地“与项目一起”发货,这样python脚本就更加独立于平台。

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

由于提前,
KTM

+0

这些模块是由您的公司自行安装的还是他们内置的与Python预打包的模块? – 2011-05-02 21:17:58

+0

@亨利那真的和他的问题没有任何关系。这实际上不涉及手头的问题。 – 2011-05-02 21:20:21

回答

5

你基本上有两种选择(就像你可能从Java承认)。

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

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

+1

我们还要提到setuptools(及其fork分发),它是基础pip和buildout的库,它有自己的依赖格式和一个能够获取deps的基本安装程序。 – 2012-02-25 05:16:15