在组织python模块时,我的Mac OS X系统很乱。我的硬盘上到处都是软件包,没有特定的系统来组织它们。
你如何保持一切易于管理?
答案 0 :(得分:12)
我的建议:
paster create
(请参阅http://pythonpaste.org)来创建初始目录布局。答案 1 :(得分:5)
除了PEP8和easy_install之外,你应该看看virtualenv。 Virtualenv允许您拥有多个不同的python库树。在工作中,我们使用virtualenv和bootstrapping环境来快速建立一个开发/生产环境,我们都在同步w.r.t库版本等。我们通常协调库升级。
答案 2 :(得分:5)
有几个Python组件系列。
Python附带的东西。这样可以解决问题。
easy_install提供的东西。这也是自己照顾的。
您必须以其他方式获得的软件包,无论是TAR球还是SVN结账。创建一个Components
文件夹。首先将下载或SVN放在那里。每一次。从那里安装。
您编写的可重用的软件包。我有一个Projects
文件夹,其中包含该文件夹中的每个项目。如果项目是一个高度可重用的东西,它有一个setup.py
,我实际上运行安装,就像我下载它一样。我没有很多,但有一些。其中一些可能成为开源项目。
您编写的最终应用程序。我在Projects
中有一个文件夹,其中包含每个顶级应用程序。这些通常是大而漫无边际的东西(比如Django网站)并且没有setup.py
。为什么?它们通常非常复杂,只需要管理一些服务器安装,并且每个服务器安装都是独一无二的。这些通常依靠PYTHONPATH
来识别他们的部分。
注意共同的主题。它们是您下载的组件,或者它们是您正在处理的项目。
另外,我将此与客户分开(在一定程度上)。我有一个客户端文件夹的主目录,每个目录都有项目,每个项目都有销售和交付。并非所有项目都有销售和交付。
答案 3 :(得分:2)
也许PEP8和easy_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/这不仅解决了模块放置问题,而且一旦放置它,就可以编写如何轻松处理文档,测试和分发的内容。