以下脚本在python3.6.5上正常工作,但在Windows 10(家庭版)中对于python3.7.3失败:
mod = __import__(pth, globals(), locals(), ['*'])
对于python3.6.5和python3.7.3,pth,globals()和locals()几乎如下所示(mPayment.py位于脚本/演示中:]
pth ==> "scripts.demo.mPayment"
locals() ==> {'pth': 'scripts.demo.mPayment', 'self': <bop.bopModule.MasterModule object at 0x000002586EC3EC88>}
globals() ==> {...} #globals() has nothing to do with "scripts.demo.mPayment"
但是使用python3.7.3,我得到了例外:
Exception occurs in importing module demo.mPayment.
Traceback (most recent call last):
File "c:\xxx\b\Module.py", line 50, in _init
mod = __import__(pth, globals(), locals(), ['*'])
ModuleNotFoundError: No module named 'scripts.demo'
任何人都知道python 3.7.3中的__import__()
脚本发生了什么,因为它可以与python3.6.5一起使用。非常感谢您的帮助。
欧阳
我只是将sys.path中的项目根路径移到第一个,然后__import__()
可以找到那些模块。