如何组织Python模块?
说到整理Python模块,我的Mac OS X系统真是一团糟。我的硬盘上到处都是包,根本没有一个好的整理方法。
你们是怎么让一切变得井井有条的呢?
8 个回答
5
除了PEP8和easy_install,你还应该了解一下virtualenv。virtualenv可以让你拥有多个不同的Python库环境。在工作中,我们使用virtualenv来快速搭建一个开发和生产环境,这样大家在库的版本等方面就能保持一致。我们通常会一起协调库的升级。
5
Python的组件有几种不同的类型。
Python自带的东西。这些东西自己就能处理好。
通过easy_install安装的东西。这些也能自己搞定。
那些你通过其他方式获取的包,比如TAR包或SVN下载。你需要创建一个
Components
文件夹。每次都把下载的文件或SVN放在这里,然后从这里进行安装。你自己写的可重用的包。我有一个
Projects
文件夹,里面放着每个项目。如果某个项目是可以多次使用的,它会有一个setup.py
文件,我会像下载包一样运行安装。我虽然不多,但有几个这样的项目,其中一些可能会变成开源项目。你写的最终应用程序。我在
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)来创建你的初始目录结构。