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