我不熟悉将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
。
答案 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中)。