精华内容
下载资源
问答
  • 一个经常听见的问题,那就是:Python是解释型的语言吗?它会被编译吗?这个问题没有想象中那么好回答。...编译的结果是一个二进制可执行文件,这时你的系统可直接运行这个程序。与此相对的,解释的意思是这...

    5d1dc72c6bb4a239.jpg

    一个经常听见的问题,那就是:Python是解释型的语言吗?它会被编译吗?这个问题没有想象中那么好回答。和很多人认识世界一样,习惯以一个简单的模型去评判一些事物。而事实上,里面包含了很多很多的细节。

    通常的说法,编译代表着将一个高级语言转化为 CPU 能执行的机器码。当你编译 C 的时候,的确是做的这样的操作。编译的结果是一个二进制可执行文件,这时你的系统可直接运行这个程序。

    与此相对的,解释的意思是这样的:程序运行时每次读源文件中的一行代码,并执行相应的操作,就这样一行一行的重复下去。当然,所谓的脚本语言就是这么运行的。

    但事实上,上面的定义有太多的局限。一门真正的语言,为了拥有更多有用和强大的特性,通常采用了各种各样的实现方式。我们可以将编译理解为更通用一些:将一种语言转化为另一种语言形式。通常来说,源语言比目标语言要更高级一些,比如将 C 转化为机器码。当然,JavaScript 8 到 JavaScript 5 的转化也算是一种编译。

    1562232237113090.jpg

    在Python中,源代码会被编译为更低级的一种形式,我们称之为字节码。字节码是一串指令,和 CPU 的指令集类似。但是字节码并不直接被 CPU 执行,而是在虚拟机中执行的。当然,这里的虚拟机并不模仿整个操作系统的环境,只是提供了字节码执行的一个环境。

    下面我们看 Python 的一小段代码以及它对应的字节码

    1562232268598755.jpg

    看了字节码的内容后,我们就知道 f'...' 这种格式化字符串的形式的运行原理,就是将里面的字符串转化为一系列的字面字符串与变量,然后使用 + 号连接起来。

    dis 是 Python 标准库中反汇编模块,它可以展示 Python 代码的字节码信息。上面提到的执行字节码的虚拟机,可以用任意的语言实现,包括 Python 自己。有兴趣的可以去 GitHub 上看下这个项目 nedbat/byterun 。这个项目可以用来学习,但不适用于生产环境。

    不过,我们运行 Python 时完全感受不到它的编译过程,没有显示的调用什么编译程序,仅仅是简单的执行 .py 文件,编译都是需要时自动编译的。这和 JAVA 不同,当你每次写完 JAVA 代码要执行时,都要手动将其编译为 .class 文件,然后执行。也正是这个原因,JAVA 被称为编译型语言,而 Python 被叫做解释型语言。但事实上,两种语言执行时都会先编译成字节码,然后交给虚拟机执行。

    Python还有一个重要的特性,就是交互式命令行。你可以敲入一行 Python 语句,然后立刻回车执行。实际上,即使是这个过程,Python 同样是先转为字节码,然后执行。而这个交互式命令行这个特性,在很多编译型语言里是没有的。同样因为没有显示的调用编译程序,很多人将执行Python源文件的程序叫做Python解释器。

    即使比较简略,但还是补充下。部分编译型语言比如 C 或者 JAVA 也有交互式命令行,但这些并不是这些语言的重心。JAVA 刚开始是编译成字节码然后执行,后面有了即时编译技术( JIT )可以直接编译成机器码,与 C 类似。

    从上面的描述可以看出,不管是解释还是编译,并没法完全分离开来。很多时候,我们想用一些词将现有的编程语言分个类,但事实上要办到这一点太难了。

    最后要说明的是,你的代码是怎么执行的只是语言的实现问题,并非语言的特征。上文中,我们讨论的是 Python ,但实际上是 CPython 的描述。CPython 是一个解释器,之所以这么叫,是因为这个解释器是用 C 编写的,这也是 Python 默认的解释器。当然还有其它很多解释器,比如,PyPy 就是另一种解释器,使用了 JIT 技术,运行速度相比 CPython 有较大提升。

    回到标题中的问题,Python之所以称为解释型语言,是因为它没有显示的调用编译操作,表现出解释型的特性比较多而已。但事实上,编译是存在的,具体怎么编译就看语言的实现了,也就是解释器的设计。

    更多Python相关技术文章,请访问Python教程栏目进行学习!

    以上就是python需要编译么的详细内容,更多请关注php中文网其它相关文章!

    本文原创发布php中文网,转载请注明出处,感谢您的尊重!

    展开全文
  • Python中经常使用的文件后缀名:pyc以 pyc 扩展名的是Python编译文件。其执行速度快于 py 文件且不能用文本编辑编辑查看。所以 pyc 文件往往代替 py 文件发布。Python 在执行时,首先会将 py 文件中的源代码编译...

    5e16e89cdb1ca427.jpg

    python源文件后缀是py。

    以 py 扩展名的文件是 Python 源码文件,由 python.exe 解释,可在控制台下运行。可用文本编辑器读写。

    Python中经常使用的文件后缀名:

    pyc

    以 pyc 为扩展名的是Python的编译文件。其执行速度快于 py 文件且不能用文本编辑编辑查看。所以 pyc 文件往往代替 py 文件发布。

    Python 在执行时,首先会将 py 文件中的源代码编译成 PyCodeObject 写入 pyc 文件,再由虚拟机执行 PyCodeObject。

    当 Python 执行 import 时会先寻找对应的 pyc或 pyd(dll)文件,如果没有则将对应的py文件编译写入 pyc 文件。pyc文件也可以通过 python -m py_compile src.py 生成。

    pyw

    pyw 文件与 pyc 文件相似,但 pyw 执行的时候不会出控制台窗口。开发(纯图形界面程序)时可以暂时把 pyw 改成 py 以调出控制台窗口调试。

    pyo

    pyo 是优化编译后的程序,不能用文本编辑器编辑。 python -O source.py 即可将源程序编译为 pyo 文件。

    pyd

    pyd 一般是 Python 外的其他语言如 C/C++ 编写的 Python 扩展模块,即 Python 的一个动态连接库,与 dll 文件相当。在Linux系统中一般为.so文件

    众多python培训视频,尽在python学习网,欢迎在线学习!

    以上就是python源文件后缀是什么的详细内容,更多请关注php中文网其它相关文章!

    本文原创发布php中文网,转载请注明出处,感谢您的尊重!

    展开全文
  • Python中经常使用的文件后缀名:pyc以 pyc 扩展名的是Python编译文件。其执行速度快于 py 文件且不能用文本编辑编辑查看。所以 pyc 文件往往代替 py 文件发布。Python 在执行时,首先会将 py 文件中的源代码编译...

    5db663172af1

    python源文件后缀是py。

    以 py 扩展名的文件是 Python 源码文件,由 python.exe 解释,可在控制台下运行。可用文本编辑器读写。

    Python中经常使用的文件后缀名:

    pyc

    以 pyc 为扩展名的是Python的编译文件。其执行速度快于 py 文件且不能用文本编辑编辑查看。所以 pyc 文件往往代替 py 文件发布。

    Python 在执行时,首先会将 py 文件中的源代码编译成 PyCodeObject 写入 pyc 文件,再由虚拟机执行 PyCodeObject。

    当 Python 执行 import 时会先寻找对应的 pyc或 pyd(dll)文件,如果没有则将对应的py文件编译写入 pyc 文件。pyc文件也可以通过 python -m py_compile src.py 生成。

    pyw

    pyw 文件与 pyc 文件相似,但 pyw 执行的时候不会出控制台窗口。开发(纯图形界面程序)时可以暂时把 pyw 改成 py 以调出控制台窗口调试。

    pyo

    pyo 是优化编译后的程序,不能用文本编辑器编辑。 python -O source.py 即可将源程序编译为 pyo 文件。

    pyd

    pyd 一般是 Python 外的其他语言如 C/C++ 编写的 Python 扩展模块,即 Python 的一个动态连接库,与 dll 文件相当。在Linux系统中一般为.so文件

    相关免费资料分享(点击即可免费观看~)

    1、0基础入门python

    2、一堂课快速认识python数据分析

    3、一节课快速认识人工智能必备语言:python

    142244252 学习资料交流群,想要和志同道合的朋友一起学习,大家互相分享自己的学习资料和作品,欢迎感兴趣的朋友共同学习,共同进步,每天还会有免费的公开课程!!

    展开全文
  • pypy以 py 扩展名的文件Python 源码文件,由 python.exe 解释,可在控制台下运行。可用文本编辑器读写。pycpyc以 pyc 扩展名的是Python编译文件。其执行速度快于 py 文件且不能用文本编辑编辑查看。所以 pyc ...

    pypy

    以 py 扩展名的文件是 Python 源码文件,由 python.exe 解释,可在控制台下运行。可用文本编辑器读写。

    pycpyc

    以 pyc 为扩展名的是Python的编译文件。其执行速度快于 py 文件且不能用文本编辑编辑查看。所以 pyc 文件往往代替 py 文件发布。

    Python 在执行时,首先会将 py 文件中的源代码编译成 PyCodeObject 写入 pyc 文件,再由虚拟机执行 PyCodeObject。当 Python 执行 import 时会先寻找对应的 pyc或 pyd(dll)文件,如果没有则将对应的py文件编译写入 pyc 文件。pyc文件也可以通过 python -m py_compile src.py 生成。

    pywpyw

    pyw 文件与 pyc 文件相似,但 pyw 执行的时候不会出控制台窗口。开发(纯图形界面程序)时可以暂时把 pyw 改成 py 以调出控制台窗口调试。

    pyopyo

    pyo 是优化编译后的程序,不能用文本编辑器编辑。 python -O source.py 即可将源程序编译为 pyo 文件。

    pydpyd

    pyd 一般是 Python 外的其他语言如 C/C++ 编写的 Python 扩展模块,即 Python 的一个动态连接库,与 dll 文件相当。在Linux系统中一般为.so文件。

    云海天教程网,免费的云海天教程网站,欢迎在线学习!

    展开全文
  • pypy以 py 扩展名的文件Python 源码文件,由 python.exe 解释,可在控制台下运行。可用文本编辑器读写。pycpyc以 pyc 扩展名的是Python编译文件。其执行速度快于 py 文件且不能用文本编辑编辑查看。所以 pyc ...
  • Python中经常使用的文件后缀名:pyc以 pyc 扩展名的是Python编译文件。其执行速度快于 py 文件且不能用文本编辑编辑查看。所以 pyc 文件往往代替 py 文件发布。Python 在执行时,首先会将 py 文件中的源代码编.....
  • 编译器是把源程序每一条语句都编译成机器语言,并...这是因为计算机不能直接认识并执行我们写语句,它只能认识机器语言(是二进制形式)三、Python的优缺点先看优点Python的定位是“优雅”、“明确”、“简单”,...
  • 首先,我给你介绍一下可以跨平台和...因为每种CPU架构的的指令集一样,所以如果c语言编译成了二进制文件(也就是机器码),那么它只能在对应机器上运行了。那为什么说c在源码级可以跨平台呢?因为每个平台都支持...
  • 大部分人在工作中可能是以c/c++、java之类语言主。...shell适合系统级别如文件、进程之类操作控制,并且高速编写,立刻运行看到效果,完毕一些系统上自己主动化操作也是比較合适,shel...
  • python .py .pyc .pyw 文件什么区别

    千次阅读 2017-07-10 11:26:42
    以 .py 作扩展名的文件Python 源代码文件,由 python.exe 解释,可在控制台下运行。当然,也可用文本编辑器进行修改。.pyc 文件 以 .pyc 作扩展名的文件python 编译文件。.pyc 文件是不能用文本编辑器进行...
  • 大部分人在工作中可能是以c/c++、java之类语言主。这也可能是我们接触第一个开发语言,这...shell适合系统级别如文件、进程之类操作控制,并且高速编写,立刻运行看到效果,完毕一些系统上自己主动化操...
  • Python中经常使用的文件后缀名:pyc以 pyc 扩展名的是Python编译文件。其执行速度快于 py 文件且不能用文本编辑编辑查看。所以 pyc 文件往往代替 py 文件发布。Python 在执行时,首先会将 py 文件中的源代码编译...
  • PYTHON的主模块

    千次阅读 2020-08-03 18:26:18
    其实这个main就是主模块命,那为什么要用这个判断,因为python的import会把模块导入,并且导入后的模块会进行编译运行一遍。也就是说如果使用一下语句进行判断,那么导入的文件就会打印hello world!!!到控制台...
  • 猜想是对,c标准库是默认连接,“C运行库”是已经编译目标文件需要源码了。再补充一个说明,c标准库有不同实现,比如GNU c library(glic)、newlib、微软msvc、BSD libc等。c runtime library(C...
  • Dll在Windows下,DLL(Dynamic Link Library,动态链接库)是一个被编译二进制程序,但与.exe文件不同,.dll文件不能独立运行,必须由其他程序调用。为什么有这东西呢?当然有其存在好处啦:不限语言。我们...
  • python学习

    2021-01-24 23:45:23
    python学习 第一周作业 思考题 1、python是怎样诞生?...c语言是编译型语言,经过编译后生成机器代码,然后再运行,执行速度 快,不能跨平台,一般用于操作系统,驱动等底层开发。 Python编译型还是解释型这个界
  • # (1)首先计算机是不能识别高级语言,所有运行一个高级语言程序时候,就需要一个“翻译机” # 把高级语言转变计算机能够读懂机器语言。那么这个过程分为两类: # 第一种是编译;第二种是解释 # (2)编译...
  • python 脚本结构

    2019-01-12 17:10:31
    以 .py 作扩展名的文件Python 源代码文件,由 python.exe 解释,可在控制台下运行。 当然,也可用文本编辑器进行修改。(我们主要使用.py文件) .pyc 文件 以 .pyc 作扩展名的文件python 编译文件。.pyc 文件是...
  • 一:解释性和编译型梳理编译型:源代码经过编译直接变为二进制机器语言,每次都可以直接重新运行不需要翻译。典型就是c语言。解释性:java和python都是解释型,源代码经过编译变为字节码...但是为什么python比...
  • python 习题

    千次阅读 2020-06-13 12:10:50
    不能 3.Python命令可通过哪些方式执行? 交互模式和编写程序执行两种 文件式和交互式 4.编译和解释区别是什么编译是一次性翻译,之后不再需要源代码,直接使用目标代码执行程序。 解释是每次...
  • Pyhon做一种高级语言,但是计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写程序。编译语言、解释语言解释:高级语言分为两种,一种是编译...
  • 在Mac OS X 下的编译命令同上产生可执行文件后,直接运行,结果输出12Hello Python!Python库函数PyRun_SimpleString可以执行字符串形式的Python代码。虽然非常简单,但这段代码除了用C语言动态生成一些Python...
  • 弱类型:弱类型变量可以变,强类型变量不能编译和解释区别: 编译器是把每一条语句都编译成及其语言,并保存成二进制文件,运行速度快; 解释器是一条一条解释成机器语言同时边解释边执行,所以运行速度慢. ...
  • C 程序为什么编译才能执行?一个 C 程序在变成可执行文件的过程中,为什么要经过预处理、编译、汇编、链接这四道工序?让我们从这段简单 C 程序开始。 ...C 语言为什么不能用这种交互式 REPL
  • Python学习之路

    2021-01-10 13:29:10
    Python学习之路 Python什么语言 编程语言主要从以下几个角度进行分类,编译型和解释型、静态语言和动态语言、强类型定义语言和弱类型定义语言,每个分类代表... 这是因为计算机不能直接认识并执行我们写语句,
  • Python 2.5

    千次下载 热门讨论 2007-05-28 12:33:42
    还有一些有趣比如说,象下面一个比较处理,用C语言: <br/> <br/>if (2 <br/>用Python可以表示 <br/>if (2 <br/> <br/>什么是Zope? <br/> <br/>Zope是一个开放源代码...
  • day01 python基础

    2019-06-24 22:54:00
    这也就是为什么很多程序可以直接文本编辑代码,再到终端进行编译运行。 2、变量和常量 变量名和变量值之间有一定关系和区别,概念不能弄混来。python惯用下划线命名法,个人也觉得这样更...

空空如也

空空如也

1 2 3 4
收藏数 72
精华内容 28
关键字:

为什么python编译的文件不能运行

python 订阅