想要在我的层次结构的子目录中运行主程序

时间:2013-01-13 17:22:06

标签: python

我正在开发一个开源Python项目,该项目具有中等规模(并且稳步增加)的演示程序。

我将演示程序移动到名为demo/的子目录,但当然你不能直接运行它们 - 如果你这样做,Python会将demo/子目录作为你的根目录,以及你所有的项目进口失败。

我的解决方法是在顶层编写一个Demo.py程序,让您选择要运行的演示,但该项目的其他开发人员和用户(非常合理地)抱怨必须这样做 - 他们只是想直接运行他们的演示。

我没有这方面的好解决方案。我最好的想法是在每个演示文件的顶部放置一个这样的代码块:

if __name__ == '__main__':
  import sys
  from os.path import dirname
  sys.path.append(dirname(dirname(__file__)))

看起来确实有效,但它不够优雅。

  1. 有更好的解决方案吗?
  2. 如果没有,我应该注意这个解决方案中是否有明显的陷阱?

1 个答案:

答案 0 :(得分:0)

Tom,我会把这些信息放在这里以防万一对别人有用:可能会引导你做一些有建设性的事情但是......我发现无法为demos目录中的文件生成文档。任

pydoc demos/Blur.py

python -m pydoc -w demos/Blur.py

只需运行该文件。即他们只是做你想要的。但是我无法获得任何文档。它适用于所有其他目录!

水稻