我正在开发一个开源 Python 项目,其中包含大量(并且稳步增加)的演示程序。
我将演示程序移动到一个名为 demo/ 的子目录,但是当然你不能直接运行它们 - 如果你这样做,Python 会将 demo/ 子目录带到成为你的根,你所有的项目导入都会失败。
我的解决方法是在顶层编写一个 Demo.py 程序,让您选择要运行的演示,但该项目的其他开发人员和用户(相当合理地)提示必须这样做 - 他们只是想直接运行他们的演示。
我对此没有很好的解决方案。我最好的想法是在每个演示文件的顶部放置一个这样的代码块:
if __name__ == '__main__':
import sys
from os.path import dirname
sys.path.append(dirname(dirname(__file__)))
这似乎确实有效,尽管它不够优雅。
- 有更好的解决方案吗?
- 如果不是,我应该注意此解决方案中是否存在任何明显的陷阱?
请您参考如下方法:
Tom,我会把这个信息放在这里,以防它对其他人有用:可能会引导你做一些有建设性的事情,但是..我发现不可能为 demos 目录中的文件生成文档。要么
pydoc demos/Blur.py
或
python -m pydoc -w demos/Blur.py
只需运行文件。即他们做你想要的。但是我无法获得任何文档。它适用于所有其他目录!
水稻
