大型项目的Python文件夹结构

问题描述 投票:2回答:2

我是在大型项目中使用python的新手。我为我的python项目找出了以下文件夹结构:

project
├── doc
├── src
│   ├── hardware
│   ├── devices
│   │   ├── device1
│   │   └── device2
│   ├── measurement
│   ├── ui
│   └── util
└── tests
    ├── hardware
    ├── devices
    │   ├── device1
    │   └── device2
    ├── measurement
    ├── ui
    └── util 

测试文件夹包含源文件夹中模块的单元测试。这样的程序正确吗?

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

此程序在多个协同计算机上使用。我应该如何部署它?当前,我使用SVN,每台计算机都将获取整个项目并从此处启动它。有一个缺点,我必须在每台计算机的PYTHONPATH中添加对象路径。

python import setup-project
2个回答
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“虚拟环境”中可见。这样可以轻松地在同一台计算机上测试各种软件包和版本。

您还可以在软件包根目录级别添加自述文件等。


0
投票

您最好的选择是使用virtualenv,并使用setup.py来描述包装。

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

在生产中,只需使用通常的:python setup.py install(始终在virtualenv中)。

© www.soinside.com 2019 - 2024. All rights reserved.