Skip to main content
 首页 » 编程设计

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

2025年05月04日10lidabo

我正在开发一个开源 Python 项目,其中包含大量(并且稳步增加)的演示程序。

我将演示程序移动到一个名为 demo/ 的子目录,但是当然你不能直接运行它们 - 如果你这样做,Python 会将 demo/ 子目录带到成为你的根,你所有的项目导入都会失败。

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

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

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

这似乎确实有效,尽管它不够优雅。

  1. 有更好的解决方案吗?
  2. 如果不是,我应该注意此解决方案中是否存在任何明显的陷阱?

请您参考如下方法:

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

pydoc demos/Blur.py 

或

python -m pydoc -w demos/Blur.py 

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

水稻