【问题标题】:What's the best practice for incorporating third-party libraries in a python program?在 python 程序中合并第三方库的最佳实践是什么?
【发布时间】:2025-11-21 16:20:05
【问题描述】:

下午好。

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

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

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

提前致谢,
公里

【问题讨论】:

  • 这些模块是贵公司自行安装的,还是使用 Python 预打包的内置模块?
  • @Henry 这与他的问题没有任何关系。它确实与手头的问题无关。

标签: python python-module


【解决方案1】:

您基本上有两种选择(就像您可能从 Java 中识别的那样)。

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

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

【讨论】:

  • 我们还要提一下 setuptools(及其 fork 分发),pip 和 buildout 的底层库,有自己的依赖格式和能够获取 deps 的基本安装程序。
最近更新 更多