如何导入文件名中带有句点的 Python 3 模块?

How Can I Import A Python 3 Module With A Period In The Filename?

导入包含句点的脚本的正确方法是什么,例如 program_1.4.py,最好使用 importlib?

(现在 imp 模块已弃用,此答案不再适用:How to reference python package when filename contains a period。)

在仔细查看 CPython 并返回到其他一些解决方案(尤其是 Import arbitrary python source file. (Python 3.3+))之后,我意识到我需要将完整路径传递到我的模块。这是跨平台、调用位置无关的解决方案:

"""

import os, sys # For running from Notepad++ shortcut, etc
import importlib.machinery

program_1_4 = importlib.machinery.SourceFileLoader('program_1.4', os.path.join(sys.path[0], 'program_1.4.py')).load_module()

print(program_1_4)
program_1_4.main()

"""