包含包和脚本的Python项目的正确结构?

时间:2012-03-27 21:30:23

标签: python

我目前正在开发一个具有自定义设计的Python包的项目,以及一堆使用该包的脚本。构造这个的最佳方法是什么,以便我可以从任何地方运行脚本而不会发现包找不到错误?我也想为这个包构建测试,所以我想有类似的东西:

project/
|--src
|   |--some_package
|--test
|--scripts

但是后来我不确定如何让脚本导入我的自定义包,以便我可以从任何地方运行/引用脚本而不会出现“无法找到包”错误。任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:2)

Hitch Hikers Guide to Packaging

上有相关文档

答案 1 :(得分:0)

在其他计算机上安装和运行这些脚本的一种方法是使用distutils将它们打包。请参阅http://docs.python.org/library/distutils.html

否则,如果将__init__.py文件放入树的目录中,Python会将该目录视为包,并允许您从中导入模块。例如,如果您有这种结构:

project/
|some_script.py
    |--some_package 
        |__init__.py
        |some_module.py
|--test
    |__init__.py
|--scripts
    |__init__.py
在some_script.py中你可以这样做:

import some_package.some_module

这将允许您在没有精心安装的情况下从子目录进行导入,以将模块放在Python路径中的某个位置。对于'test'和'scripts'目录,可以做同样的事情。 (您可能已经知道这一点,但__init__.py只能是一个空文件。)