百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python虚拟机运行原理及加载流程(虚拟主机运行python)

off999 2024-10-19 07:20 27 浏览 0 评论

Python是一种半编译半解释型运行环境。理解Python运行环境对后续很多问题将会有很深刻的理解.

首先,Python虚拟机会在模块 "载入" 时将源码编译成字节码 (ByteCode)。然后,这些字节码会被虚拟机在一个 "巨大" 的核心函数里解释执行。这是导致 Python 性能较低的重要原因,虽然现在有了内置 Just-in-time 二次编译器的 PyPy 可供选择。(Pypy 使用即时编译(JIT)技术,可以在运行时将 Python 代码动态地编译成机器码,从而提供更高的执行速度)

当Python虚拟机开始运行时,它通过初始化函数完成整个运行环境设置:

  1. 创建解释器和主线程状态对象,这是整个进程的根对象。
  2. 初始化内置类型。数字、列表等类型都有专门的缓存策略需要处理。
  3. 创建 __builtin__ 模块,该模块持有所有内置类型和函数。
  4. 创建 sys 模块,其中包含了 sys.path、modules 等重要的运行期信息。
  5. 初始化 import 机制。
  6. 初始化内置 Exception。
  7. 创建 __main__ 模块,准备运行所需的名字空间。
  8. 通过 site.py 将 site-packages 中的第三方扩展库添加到搜索路径列表。
  9. 执行入口py 文件。执行前会将 __main__.__dict__ 作为名字空间传递进去。
  10. 程序执行结束。
  11. 执行清理操作,包括调用退出函数,GC 清理现场,释放所有模块等。
  12. 终止进程。

不知道大家有没有注意到, Python在获取一个没有定义的变量值时候, 报错信息是NameError, 而不是和其他语言一样, 错误为变量未定义或者undefind, 如下图:

这其实和Python虚拟机加载原理有很大关系, 主要是上边第7步名字空间有关.由于本节内容主要是将Python虚拟机, 因此名字空间的内容放到后续单独出一篇文章讲解, 请关注后续更新.

#挑战30天在头条写日记#

相关推荐

microsoft+teams在线会议(microsoft teams meeting)
  • microsoft+teams在线会议(microsoft teams meeting)
  • microsoft+teams在线会议(microsoft teams meeting)
  • microsoft+teams在线会议(microsoft teams meeting)
  • microsoft+teams在线会议(microsoft teams meeting)
台式电脑怎么换显卡(台式电脑怎么换显卡视频)
台式电脑怎么换显卡(台式电脑怎么换显卡视频)

1.准备好螺丝刀,拆箱之前我们的手先在周围找金属物品触摸下,释放静电,避免静电击坏电子元件。用螺丝刀拆下螺丝,取下盖子。2.用螺丝刀拆下锁住扩展卡的螺丝和挡片。3.双手各握住一方,用力均衡,然后慢慢地推出电脑显卡。4.之后即可成功取出电脑主...

2025-12-26 17:51 off999

wifi连接上却不能访问互联网

原因一:路由器问题,可能路由器过热或者损坏;重启一下路由器试试,或者将路由器恢复一下出厂设置,然后重新拨号上网,并根据设置向导重新设置WiFi,或者更换新路由器再进行拨号连接上网。  原因二:可能宽带...

显卡驱动在哪里打开(显卡驱动设置在哪里)
显卡驱动在哪里打开(显卡驱动设置在哪里)

1.以华硕x16、windows11、amd22.8.1为例。先进入电脑桌面,然后点击电脑开始菜单。2.找到“AMDRadeonsettings”点击展开。3.可以看到“AMDRadeonsettings”的主程序,点击打开。4.这...

2025-12-26 16:51 off999

bios启动项里找不到固态硬盘

这个是BIOS设置问题,操作步骤不正确。需要在【启动】菜单中【硬盘BBS属性】中设置。下面提供一下完整的操作步骤,请参考:1、将装有固态硬盘的电脑重启,同时按键盘F2键。2、进入BIOS界面,在标题栏...

用手机解除路由器限速(用手机解除路由器限速教程)
用手机解除路由器限速(用手机解除路由器限速教程)

1、设置wifi限速等功能时,需要打开路由器管理页面,所以先打开一个浏览器,在里面输入192.168.1.1,然后点击确定,再把路由器的密码输进去点击确定,原始账密在路由器的背面会有。2、打开wifi路由器的管理页面后,找到设备管理项点击它...

2025-12-26 15:51 off999

系统集成项目管理工程师报考

中级系统集成项目报考条件及费用如下:1、凡遵守中华人民共和国宪法和各项法律,恪守职业道德,具有一定计算机技术应用能力的人员,均可根据本人情况,报名参加相应专业类别、级别的考试。2、获准在中华人民共和国...

电脑显示内存不能为read(电脑显示内存不能为read怎样修改虚拟内存)

1内存不能为read可能是因为程序在读取数据时没有分配足够的内存空间。2解决方法可以是增加程序的内存分配,或者优化内存使用方式,例如使用缓存等技术。3此外,还可以通过检查代码逻辑是否有误,或者是...

电脑刚启动就黑屏怎么办(电脑刚开机就黑屏怎么办)
  • 电脑刚启动就黑屏怎么办(电脑刚开机就黑屏怎么办)
  • 电脑刚启动就黑屏怎么办(电脑刚开机就黑屏怎么办)
  • 电脑刚启动就黑屏怎么办(电脑刚开机就黑屏怎么办)
  • 电脑刚启动就黑屏怎么办(电脑刚开机就黑屏怎么办)
网易用户中心官网(网易用户中心官网注册账号)

要登录网易个人中心的话,首先你网易要有自己的账户。你可以搜索一下网易的官方链接,打开以后先注册,注册成功了以后你就可以进到个人中心了,上面也可以做一些设置或修改你的密码之类的。然后你就可以多看一下,看...

windows defender怎么关闭win11

1.启用或禁用WindowsDefender的实时保护可以通过设置打开或者关闭某些模块(例如实时保护)的选项。第一步,右键点击开始菜单--设置或者按住WIN+I(大写的i)快捷键...

无法识别硬盘(无法识别硬盘怎么解决)

1.有可能可以修复2.因为硬盘无法识别可能是由于硬盘本身的故障或者连接线松动等原因导致的,可以尝试更换连接线或者使用一些数据恢复软件进行修复。但是如果硬盘本身的故障比较严重,可能需要专业的数据恢复...

win10固态硬盘如何分区(win10固态硬盘分区多大合适)

可以按照以下步骤进行分区。1.打开“此电脑”或“文件资源管理器”,右击“此电脑”,选择“管理”。2.在计算机管理窗口中,选择“磁盘管理”,找到你的固态硬盘。3.右击固态硬盘,选择“新建简单卷”。...

博图v19(博图v19安装过程中出错)

 西门子博途(TIAPortal)是用于工程设计和编程的软件平台,博途V19和V18是该平台的不同版本。它们在功能、性能和用户体验上有一定的区别。以下是一些主要区别:1.新功能和性能提升...

小米怎么关闭自动更新(如何关闭小米自动更新系统)

  方法/步骤分享:  1、首先找到自己手机上的设置选项。  2、找到设置之后我们看到下面有一个我的设备选项。  3、在我的设备下面有一个miui版本,点击这个版本号后面的箭头。  4、进入到系统更新...

取消回复欢迎 发表评论: