当谈到组织 python 模块时,我的 Mac OS X 系统一团糟。我的硬盘上到处都是软件包,并且没有特定的系统来组织它们。

如何让一切都易于管理?

有帮助吗?

解决方案

我的建议:

其他提示

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

有几个Python组件系列。

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

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

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

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

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

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

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

也许 PEP8 easy_install 可以帮到你吗?

我将所有包的源代码保存在〜/ 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有一个每用户站点包目录,您可能会觉得更方便。

“模块”" Python文档页面是组织代码的有用指南,特别是“包”。部分

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top