1.问题分析
笔者的错误发生在以下代码
import gym
env = gym.make('GridWorld-v0')
env.reset()
env.render()
这个错误通常表明Python解释器在尝试导入模块时已经处于关闭过程中。
2.解决
通常在上述代码第五行加入 env.close() 即可解决。
但可能会出现秒闪,所以导入time模块改成以下代码
import gym
import time
env = gym.make('GridWorld-v0')
env.reset()
env.render()
time.sleep(5)
env.close()
3.延深
python解释器:
计算机的大脑是cpu,中文名叫中央处理器,仍然不能直接处理Python语言。cpu只能直接处理机器指令语言,那是一种由0和1数字组成的语言,这是一种我们人很难直接写出的语言。所以需要一个翻译把python语言翻译成计算机cpu能听懂的机器指令语言,这样计算机才能按照我们python程序要求去做事情。.py结尾文件需要解释器去运行执行。
python解释器的构成及其各部分功能:
解释器由一个编译器和一个虚拟机构成。编译器负责将源代码转换成字节码文件,而虚拟机负责执行字节码。所以,解释型语言其实也有编译过程,只不过这个编译过程并不是直接生成目标代码,而中间代码(字节码),然后再通过虚拟机来逐行解释执行字节码。
执行过程原理:
1.执行 python XX.py 后,将会启动 Python 的解释器
2.python解释器的编译器会将.py源文件编译(解释)成字节码生成PyCodeObject字节码对象存放在内存中。
3.python解释器的虚拟机将执行内存中的字节码对象转化为机器语言,虚拟机与操作系统交互,使机器语言在机器硬件上运行。
4.运行结束后python解释器则将PyCodeObject写回到pyc文件中。当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程。
参考文献
1.ImportError: sys.meta_path is None, Python is likely shutting down 解决方案-CSDN博客