Git仓库内Python跨目录导入的合规实现方案咨询
Python跨目录导入的需求与疑问
我希望创建一个可按以下方式使用的Git仓库:
git clone $PROJECT_URL my_project cd my_project python some_dir/some_script.py
同时需要让some_dir/some_script.py能够导入another_dir/some_module.py中的内容,请问该如何实现这一需求?
我的期望要求按重要性从高到低排列:
- 不得在任何
.py文件中修改sys.path,这会导致IDE自动重构时出现稳定性问题。 - 不得更改目录结构,该仓库的结构是经过精心设计的。
- 不得修改环境,例如不想向
$PYTHONPATH中添加硬编码路径,避免切换到其他目录执行无关Python命令时出现意外行为。 - 尽量少修改上述3条命令的执行流程,不想要复杂的工作流,希望能对
some_dir/some_script.py使用自动补全,且不想额外输入Python命令行参数。
我了解有四种通用解决方案,但都无法满足上述所有要求。
如果不存在符合所有要求的可行方案,想了解背后的原因?这似乎是很自然的需求,列出的要求也合理。我知道Guido在2007年的一封邮件中表达过相关观点:
我反对这个以及任何对
__main__机制的修改提议。唯一的用例似乎是运行恰好位于模块目录内的脚本,我一直认为这是一种反模式。除非能说服我并非如此,否则我不会改变主意。
但不确定此后情况是否有变化。
内容的提问来源于stack exchange,提问作者dshin
相关产品推荐
相关产品推荐

