如何组织Python模块?

14 投票
8 回答
7127 浏览
提问于 2025-04-11 09:21

说到整理Python模块,我的Mac OS X系统真是一团糟。我的硬盘上到处都是包,根本没有一个好的整理方法。

你们是怎么让一切变得井井有条的呢?

8 个回答

5

除了PEP8和easy_install,你还应该了解一下virtualenv。virtualenv可以让你拥有多个不同的Python库环境。在工作中,我们使用virtualenv来快速搭建一个开发和生产环境,这样大家在库的版本等方面就能保持一致。我们通常会一起协调库的升级。

5

Python的组件有几种不同的类型。

  1. Python自带的东西。这些东西自己就能处理好。

  2. 通过easy_install安装的东西。这些也能自己搞定。

  3. 那些你通过其他方式获取的包,比如TAR包或SVN下载。你需要创建一个Components文件夹。每次都把下载的文件或SVN放在这里,然后从这里进行安装。

  4. 你自己写的可重用的包。我有一个Projects文件夹,里面放着每个项目。如果某个项目是可以多次使用的,它会有一个setup.py文件,我会像下载包一样运行安装。我虽然不多,但有几个这样的项目,其中一些可能会变成开源项目。

  5. 你写的最终应用程序。我在Projects文件夹里有一个文件夹,里面放着这些主要的应用程序。这些通常比较复杂,比如Django网站,并且没有setup.py。为什么呢?因为它们通常很复杂,每个服务器的安装都是独一无二的。这些应用一般依赖于PYTHONPATH来识别它们的组成部分。

注意到一个共同点了吗?要么是你下载的组件,要么是你正在做的项目。

另外,我会把这些和客户的东西分开(在一定程度上)。我有一个主目录,里面有客户文件夹,每个文件夹里都有项目,而每个项目又有销售和交付。并不是所有项目都有销售和交付。

13

我的建议:

  • 先看看安装Python模块的内容。
  • 再了解一下分发Python模块的相关信息。
  • 开始使用setuptools里的easy_install工具。记得阅读setuptools的文档。
  • 一定要使用virtualenv。我的site-packages目录里只放了setuptools和virtualenv
  • 看看Ian Bicking的新项目pyinstall
  • 关注一下Ian Bicking正在做的所有事情,都是很有价值的。
  • 当你创建自己的包时,使用distutils或setuptools。可以考虑使用paster create(查看http://pythonpaste.org)来创建你的初始目录结构。

撰写回答