登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
园子
关于
博客
发1篇日志+1圆
记录
发1条记录+2圆币
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
VIP申请
网盘
联系我们
道具
勋章
任务
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
资源区
›
代码
›
【Python学习笔记】 第2章 Python如何运行程序 ...
【Python学习笔记】 第2章 Python如何运行程序
[ 复制链接 ]
蔓好
5 天前
Python解释器简介
我们在Python的官网下载并安装Python后,它会生成一些组件,包括解释器和一套支持库。Python的代码必须在解释器中运行。
程序运行
程序员的视角
一个Python程序仅是一个包含Python语句的文本文件。例:创建script0.py文件,并写上:
print("Hello, world!")
print(2 ** 100)
复制代码
然后,我们在命令行窗口,调用Python执行文件:
Python的视角
在解释器解释文件的内容时,还会做一些别的事情。
字节码编译
如果Python在机器上拥有写入权限,那么它把程序的字节码保存为一个以.pyc为扩展名的文件,这个就是字节码文件。在版本3.2之前,文件与源文件同目录;在版本3.2之后,文件在__pycache__目录中。在这个目录中还保存了编译它们的Python版本信息。
Python这么做的目的是对启动速度优化。下次运行程序时,Python先检查:
源文件是否改变
:检查源文件和字节码文件最后一次修改的时间戳。
Python的版本
:是否版本不同。
然后确定是否要重新编译并生成字节码文件。大型程序中,字节码文件有助于加速启动。
Python虚拟机
Python将程序编译成字节码后,就可以发送到Python虚拟机上执行。Python虚拟机是解释器的一部分,也是解释器的最后一环。
性能的含义
Python的源代码在写好后可以立刻运行。字节码只是特定于Python的一种表现形式。Python仍然需要解释字节码,这使得Python的运行速度不如C/C++。
开发的含义
Python的编译后立刻执行的特性使得开发周期大大缩短。
执行模型的变体
Python的各种实现
CPython:标准Python
最初的、标准的Python
Jython:基于Java的Python
设计目的是与Java编程语言集成。作用是将Python源代码编译成Java字节码,使其可以运行在Java虚拟机上。
IronPython:基于.NET的Python
可以与Windows平台上的.NET框架以及与之对应的Linux开源的Mono编写成的应用相集成。
Stackless:注重并发的Python
它不会在栈上保存状态,使得Python更容易移植到较小的栈架构中。
PyPy:注重速度的Python
执行优化工具
Cython:Python和C的混合
Shed Skin:Python到C++的转换器
Psyco:原先的即时编译器
冻结二进制文件
有时候我们希望能够拥有一个把Python程序编译成二进制文件的简单方法。
实现上述想法的工具有:py2exe(Windows)、PyInstaller(Linux、Mac OS X)等等。
未来的可能性
未来也许有新的字节码格式和实现方式的变体将被采用。比如:
Parrot:提供多种语言通用的字节码格式、虚拟机以及优化技术。
Unladen Swallow:将Python提速至少5倍。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
本地部署deepseek,并投喂数据
[技术探索者手记] C++自学之路 × linux下搭建属于自己风格的FFmpeg开发项目框架
HTTP-获取天气-dns版
Swift whit Xcode 递归枚举实现(使用枚举模拟加减乘除复合运算)
libevent之bufferevents
RabbitMQ简单介绍及常见面试题
JAVA 24 环境安装与配置
物联网之使用Vertx实现UDP最佳实践【响应式】
【日记】每次修机器都有些头疼(721 字)
FastAPI与Tortoise-ORM开发的神奇之旅
mORMot 1.18 第23章 使用纯SQL
CMake构建学习笔记14-依赖库管理工具
【日记】今天好忙(391 字)
FFmpeg开发笔记(四十三)使用SRS开启SRT协议的视频直播服务
重温c语言之,7天开整,就是随便的写写,第七天
c语言的编译与调试
模拟实现 strcat(字符串追加) --浅谈C语言
线性dp:大盗阿福(打家劫舍)
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
业界
签约作者
程序园优秀签约作者
发帖
蔓好
5 天前
关注
0
粉丝关注
15
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
敖可
9986
森萌黠
9994
里豳朝
9994
4
柴古香
9994
5
背竽
9994
6
猷咎
9992
7
凶契帽
9992
8
黎瑞芝
9992
9
松菊
9992
10
尝琨
9992
查看更多