你如何组织Python模块?

时间:2008-10-05 10:09:28

标签: python module

在组织python模块时,我的Mac OS X系统很乱。我的硬盘上到处都是软件包,没有特定的系统来组织它们。

你如何保持一切易于管理?

8 个答案:

答案 0 :(得分:12)

我的建议:

答案 1 :(得分:5)

除了PEP8和easy_install之外,你应该看看virtualenv。 Virtualenv允许您拥有多个不同的python库树。在工作中,我们使用virtualenv和bootstrapping环境来快速建立一个开发/生产环境,我们都在同步w.r.t库版本等。我们通常协调库升级。

答案 2 :(得分:5)

有几个Python组件系列。

  1. Python附带的东西。这样可以解决问题。

  2. easy_install提供的东西。这也是自己照顾的。

  3. 您必须以其他方式获得的软件包,无论是TAR球还是SVN结账。创建一个Components文件夹。首先将下载或SVN放在那里。每一次。从那里安装。

  4. 您编写的可重用的软件包。我有一个Projects文件夹,其中包含该文件夹中的每个项目。如果项目是一个高度可重用的东西,它有一个setup.py,我实际上运行安装,就像我下载它一样。我没有很多,但有一些。其中一些可能成为开源项目。

  5. 您编写的最终应用程序。我在Projects中有一个文件夹,其中包含每个顶级应用程序。这些通常是大而漫无边际的东西(比如Django网站)并且没有setup.py。为什么?它们通常非常复杂,只需要管理一些服务器安装,并且每个服务器安装都是独一无二的。这些通常依靠PYTHONPATH来识别他们的部分。

  6. 注意共同的主题。它们是您下载的组件,或者它们是您正在处理的项目。

    另外,我将此与客户分开(在一定程度上)。我有一个客户端文件夹的主目录,每个目录都有项目,每个项目都有销售和交付。并非所有项目都有销售和交付。

答案 3 :(得分:2)

也许PEP8easy_install可以帮助您?

答案 4 :(得分:2)

我在〜/ Packages /中保存了我的软件包的所有源代码,然后在它们上面进行标准安装“python2.5 setup.py install”。这个(对我来说)扔进/Library/Frameworks/Python/Versions/current/lib/python2.5/site-packages/。为了开发我自己的软件,我设置了别名,通过预先添加到PYTHONPATH来在trunk / branches / 1.0等之间切换。 (我必须在每个目录中运行'setup.py build_ext --inplace'才能正确导入。)

值得注意的是,Python2.6有per-user site-packages directory,您可能会觉得更方便。

答案 5 :(得分:1)

The "Modules" Python documentation page是组织代码的有用指南,特别是“包”部分

答案 6 :(得分:1)

我的建议是尝试将所有内容放入您的站点包目录中,除非您有充分的理由不这样做。我试着避免使用easy_install,因为我发现它往往会破坏我的带有鸡蛋位置的sys.path,但那只是我。有些人觉得它很有用。

如果您有许多使用不同库的程序可能会相互冲突,您可能还想查看virtualenv

答案 7 :(得分:1)

刚刚在另一个StackOverflow问题中遇到了这个网站:http://infinitemonkeycorps.net/docs/pph/这不仅解决了模块放置问题,而且一旦放置它,就可以编写如何轻松处理文档,测试和分发的内容。