大型项目的Python文件夹结构

时间:2012-08-03 09:28:31

标签: python import setup-project

我不熟悉将python用于大型项目。我想出了我的python项目的以下文件夹结构:

project
  --> doc
  --> src
        --> hardware
        --> devices
               --> device1
               --> device2
        --> measurement
        --> ui
        --> util
  --> tests
        --> hardware
        --> devices
               --> device1
               --> device2
        --> measurement
        --> ui
        --> util

tests文件夹包含soure文件夹中模块的单元测试。这是这种计划的正确方法吗?

我该如何进行导入?我想将根文件夹添加到python路径并从根路径导入每个模块绝对。我应该这样做吗?

该计划用于几个合作者。我应该如何部署它?目前我使用SVN并且每台计算机都获得整个项目并从那里开始。有一个缺点,我必须将prject路径添加到每台计算机上的PYTHONPATH

2 个答案:

答案 0 :(得分:2)

全球结构对我来说很好。 您需要一个模块来编写setup.py脚本来安装您的软件包,例如setuptools。这将允许安装和分发包。 有关包的分发,另请参阅Pypi。 通常,您可以:

sudo setup.py install

在系统级别安装软件包。 或者你可以:

sudo setup.py install --prefix=~/local 

在用户级别安装。 但是你必须在你的PYTHONPATH中添加〜/ local / lib / python / site-packages。但是对于该用户安装的所有软件包,只需执行一次。

如果你的包存储在PyPI上,你可以在任何机器上执行:

easy_install mypackage

自动魔术安装包。

更好的是,您可以使用virtualenv在隔离的python“虚拟环境”中显示您的包。这允许在同一台计算机上轻松测试各种软件包和版本。

您还可以在包根级别添加README文件等。

答案 1 :(得分:0)

您最好的选择是使用virtualenv,并使用setup.py来描述该套餐。

然后,为了开发,在虚拟环境中,只需执行python setup.py develop将鸡蛋安装在开发模式中,您就可以开始了: http://packages.python.org/distribute/setuptools.html#develop-deploy-the-project-source-in-development-mode

在制作中,只需使用通常的:python setup.py install(总是在virtualenv中)。