**
(自用)ImportError: sys.meta_path is None, Python is likely shutting down 解决方案
**
import gym
env=gym.make("MountainCar-v0")
env.reset()
done=False
while not done:
action=2
new_state,reward,done,_= env.step(action)
env.render()
env.close()
这是Q学习的小demo,学习网址但是在运行过程中出现的问题如下图图片:
在网上查找一些解决方法后,[1]加入import time
time.sleep
尽管运行出来的效果不会闪现,但是仍然会出现警告。
之后,我在cmd中输入python,会出现如下警告。
翻译后就是:此python解释器位于conda环境中,但是该环境未激活。库可能无法加载。
python解释器
计算机的大脑是cpu,中文名叫中央处理器,仍然不能直接处理Python语言。cpu只能直接处理机器指令语言,那是一种由0和1数字组成的语言,这是一种我们人很难直接写出的语言。所以需要一个翻译把python语言翻译成计算机cpu能听懂的机器指令语言,这样计算机才能按照我们python程序要求去做事情。.py结尾文件需要解释器去运行执行。
python解释器的构成及其各部分功能
解释器由一个编译器和一个虚拟机构成。编译器负责将源代码转换成字节码文件,而虚拟机负责执行字节码。
所以,解释型语言其实也有编译过程,只不过这个编译过程并不是直接生成目标代码,而中间代码(字节码),然后再通过虚拟机来逐行解释执行字节码。
3.执行过程原理
1.执行 python XX.py 后,将会启动 Python 的解释器
2.python解释器的编译器会将.py源文件编译(解释)成字节码生成PyCodeObject字节码对象存放在内存中。
3.python解释器的虚拟机将执行内存中的字节码对象转化为机器语言,虚拟机与操作系统交互,使机器语言在机器硬件上运行。
4.运行结束后python解释器则将PyCodeObject写回到pyc文件中。当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程。
最后解决未激活问题,如图所示:
我执行的过程及结果:
参考文献:[1][https://blog.csdn.net/idestina/article/details/88977322
[2]https://blog.csdn.net/weixin_43422340/article/details/114316820