python – 导入模块时exec行为的区别
我正在运行以下程序.重要的是,假设这些程序所在的目录中有mymodule.py文件.
首先: exec('''import sys import os os.chdir('/') sys.path = [] import mymodule''',{}) 第二: import mymodule exec('''import sys import os os.chdir('/') sys.path = [] import mymodule''',{}) 第一个片段按预期引发ImportError(毕竟,mymodule所在的目录不在路径中).然而,第二个片段没有,即使mymodule也不在它的路径中,我给它的环境是空的. 我的问题是为什么 解决方法
根据
The import system – The module cache,
第二个片段成功导入mymodule;它被缓存在sys.modules中,因此不会在其他地方进行搜索. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |