所以我有导入标准模块checkmarc的脚本。
import checkdmarc
我想实现一些模拟checkmarc,它将与脚本位于同一目录。
现在有时它会在那里,我希望脚本提取该本地模块,如果不存在,则应使用标准的checkmarc。
我知道我可以做一些类似的事情,如果路径中的文件存在,它将接受,否则,但是我想将导入行保持为import checkmarc
。
从阅读:https://docs.python.org/3/whatsnew/2.5.html#pep-328-absolute-and-relative-imports 有一部分正是我所需要的,但仅适用于Python 2.4及更低版本:
在Python 2.4和更低版本中,它将首先 查看软件包的目录以执行相对导入, pkg / string.py,将该文件的内容导入为pkg.string 模块,并且该模块绑定到pkg.main中的名称字符串 模块的名称空间。
如果有一种优雅的方法,我很想听听。
答案 0 :(得分:1)
如果您的自定义模块具有相同的名称,我认为您无法执行此操作。但是,您可以执行以下操作:
try:
import customcheckdmarc as checkdmarc
except ImportError:
import checkdmarc as checkdmarc
这将加载您的customecheckedmarc.py(如果存在),否则将加载默认的checkdmarc。