我有一个类似于宏的程序,运行在一个父程序中,并从该程序中导入 API 模块(我们称其为foo
)。问题是该模块仅存在于该程序中,因此我无法像在软件外部运行pydocmd一样执行操作,因为脚本会抛出ReferenceError。为了方便自己的开发,我创建了一个类型桩文件 foo.pyi
在我的项目目录中。我想要做的是,如果导入失败,则将该类型桩作为普通 Python 文件导入,以提供虚拟函数和属性。类似于:
try: from foo import api except ImportError: # Fallback to the type stub file. import foo as api # type: ignore[attr-defined]
try:
import foo
except ImportError:
from . import foo.pyi
然而,这会引发一个错误,因为它试图从项目文件夹中不存在的foo
库导入pyi
。我能想到的唯一其他选择是将.pyi文件的完全相同副本命名为"dummy_foo.py",但那样我必须在一个仓库中维护两个相同文件的副本。我宁愿不这样做。