【发布时间】:2017-12-28 16:28:37
【问题描述】:
我正在开发一个转换 YAML 文件的宏引擎。这些 YAML 文件包含我使用 importlib 导入的 Python 模块的路径。我希望最终用户能够指定以. 开头的相对路径,并且这些路径相对于 YAML 文件进行解析。 (这样,用户可以轻松地将 YAML 文件和相关模块发送到目录或 zip 文件中。)
如果可能,我不希望修改sys.path,但这不是硬性要求(我可以使用上下文管理器来修补/取消修补它)。
我知道如何使用importlib.import_module(name, package) 导入相对于虚线路径package 的name。但是在这里,我有一个指向 YAML 文件的 OS 文件路径,它不是 Python 模块。这个可以吗?
例子:
- 我的脚本在
~/bin/macroengine.py - YAML 文件位于
~/example/source.yaml - 外部模块位于
~/example/myModule.py
我希望source.yaml 将外部模块引用为.myModule。
【问题讨论】:
-
您能否举例说明您正在努力的路径?我不确定您所说的“YAML 文件的操作系统文件路径”是什么意思。
标签: python python-import python-3.3