如果解释Python,什么是.pyc文件?】的更多相关文章

1. Python是一门解释型语言吗? 我初学Python时,听到的关于Python的第一句话就是,Python是一门解释性语言,我就这样一直相信下去,直到发现了*.pyc文件的存在.如果是解释型语言,那么生成的*.pyc文件是什么呢?c应该是compiled的缩写才对啊! 为了防止其他学习Python的人也被这句话误解,那么我们就在文中来澄清下这个问题,并且把一些基础概念给理清.   2. 解释型语言和编译型语言 计算机是不能够识别高级语言的,所以当我们运行一个高级语言程序的时候,就需要一个“…
Python程序的执行过程 我们都知道,C语言在执行之前需要将源代码编译成可执行的二进制文件,也就是将源代码翻译成机器代码,这种二进制文件一旦生成,即可用于执行.但是,Python是否一样呢?或许很多人都听过,Python和Java都是半编译半解释的语言,那么问题来了,什么又是半编译半解释呢?这还要从C语言开始说起 比方我们现在有一段C语言写成的程序,我们在一台Linux服务器上编译好了,生成可执行的二进制文件,可是我现在想要在一台Windows的机器上执行这个文件,这是不可能的,原因是因为不同…
8.0 序 我们日常会写各种各样的python脚本,在运行的时候只需要输入python xxx.py程序就执行了.那么问题就来了,一个py文件是如何被python变成一系列的机器指令并执行的呢? 8.1 python程序的执行过程 python的执行原理可以用两个词来囊括:虚拟机.字节码 首先在python中有一个非常关键的东西,这个东西被称为解释器(interpreter),当我们在命令行中输入python时,就是为了激活这个解释器.当然如果后面还跟上了py文件,那么解释器会立刻被激活,然后执…
上一节:Python之code对象与pyc文件(二) 向pyc写入字符串 在了解Python如何将字符串写入到pyc文件的机制之前,我们先来了解一下结构体WFILE: marshal.c typedef struct { FILE *fp; int error; int depth; /* If fp == NULL, the following are valid: */ PyObject *str; char *ptr; char *end; PyObject *strings; /* di…
上一节:Python之code对象与pyc文件(一) 创建pyc文件的具体过程 前面我们提到,Python在通过import或from xxx import xxx时会对module进行动态加载,如果没有找到相应的pyc或dll文件,就会在py文件的基础上创建pyc文件,之前说过,pyc文件中保存的是PyCodeObject对象,那么我们就要搞清楚,PyCodeObject是如何写入到pyc文件中的 import.c static void write_compiled_module(PyCod…
不显示python生成的pyc文件 不显示java eclipse编辑器生成的.metadata生成的文件夹 py文件执行后会生成.pyc文件,会影响侧边栏的使用,可以通过如下设置隐藏.pyc等中间文件 //ctrl+shift+p 输入setting //在用户配置对象追加 "files.exclude": { "*.metadata": true, "*.settings": true, "**/*.pyc": true,…
本文要说明的问题 pyc 文件是什么 pyc 文件的作用 py 与 pyc 文件冲突 pyc 文件是什么 当 py 文件加载后,py 文件被二进制编码成 pyc 文件.py 文件的修改时间被记录到 pyc 文件中. 这里的加载意味着要被其他模块导入,如果你只是运行 python filename.py,那么不会生成 pyc 文件. pyc 文件的作用 pyc 文件是为了让加载 Python 模块更快,因为 pyc 相比 py 文件编译过程可以被跳过. pyc 文件不能令执行更快. py 与 py…
我已经了解Python是一种解释型语言......但是,当我查看我的Python源代码时,我看到.pyc文件,Windows将其识别为“编译的Python文件”. 这些来自哪里? #1楼 Python代码经历了两个阶段. 第一步将代码编译成.pyc文件,这实际上是一个字节码. 然后使用CPython解释器解释此.pyc文件(字节码). 请参阅此链接. 这里用简单的术语解释代码编译和执行的过程. #2楼 它们包含字节代码 ,这是Python解释器编译源的代码. 然后,此代码由Python的虚拟机执…
原文:https://www.cnblogs.com/huchong/p/8244279.html 另一篇关于.pyc文件是什么?  原文: http://blog.sina.com.cn//s/blog_17bce02530102ya3k.html 一:什么是pyc文件? pyc文件就是 py程序编译后得到的文件,是一种二进制文件.一般是这样的: pyc文件经过python解释器最终会生成机器码运行.所以pyc文件是可以跨平台部署的,类似Java的.class文件.如果py文件改变,也会重新生…
py是源文件,pyc是源文件编译后的文件,pyo是源文件优化编译后的文件,pyd是其他语言写的python库 1. Python是一门解释型语言? Python是一门解释性语言,我就这样一直相信下去,直到发现了*.pyc文件的存在. 如果是解释型语言,那么生成的*.pyc文件是什么呢?c应该是compiled的缩写才对啊! 为了防止其他学习Python的人也被这句话误解,那么我们就在文中来澄清下这个问题,并且把一些基础概念给理清.        python并非完全是解释性语言,它是有编译的,先…
参考文献 一.包 包是一个文件夹,用来存放模块和子包. 包里一般会有一个__init__.py的文件(也可以没有). 包里会有一个__pycache__文件夹,存放.py文件经解释器解释后的中间字节码(二进制文件). 二.模块 可以作为模块的文件有.py..pyc..pyo..pyd..so..dll文件. 三..pyc文件与.pyo文件 这两个文件都是二进制文件,由python解释器将.py文件转化成的二进制文件,目的是加快解释速度且可以隐藏源代码. python解释器在解释.py文件时,会优…
一.命令生成 pyc 文件 *.py:源码文件,由 Python 程序解释. *.pyc:源码经编译后生成的二进制字节码(Bytecode)文件. *.pyo:优化编译后的程序,也是二进制字节码文件. 虚拟机怎么执行py脚本: 完成模块的加载和链接: 将源代码翻译为PyCodeObject对象(这就是字节码),并将其写入内存当中(方便CPU读取,起到加速程序运行的作用): 从上述内存空间中读取指令并执行: 程序结束后,根据命令行调用情况(即运行程序的方式)决定是否将PyCodeObject写回硬…
Windows系统搭建好Python的环境后,进入Python的安装目录,大家会发现目录中有python.exe和pythonw.exe两个程序.如下图所示: 它们到底有什么区别和联系呢? 概括说明一下: python.exe在运行程序的时候,会弹出一个黑色的控制台窗口(也叫命令行窗口.DOS/CMD窗口): pythonw.exe是无窗口的Python可执行程序,意思是在运行程序的时候,没有窗口,代码在后台执行. .py和.pyw文件的区别也来源于python.exe和pythonw.exe的…
编译型语言在程序执行之前,先会通过编译器对程序执行一个编译的过程,把程序转变成机器语言.运行时就不需要翻译,而直接执行就可以了.最典型的例子就是C语言. 解释型语言就没有这个编译的过程,而是在程序运行的时候,通过解释器对程序逐行作出解释,然后直接运行,最典型的例子是Ruby. pyc 当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中. 当python程序第二次运行时…
生成单个pyc文件 python就是个好东西,它提供了内置的类库来实现把py文件编译为pyc文件,这个模块就是 py_compile 模块. 使用方法非常简单,如下所示,直接在idle中,就可以把一个py文件编译为pyc文件了.(假设在windows环境下) import py_compile py_compile.compile(r'H:/game/test.py') compile函数原型: compile(file[, cfile[, dfile[, doraise]]]) file 表示…
为了加密 .py 文件,以前一般使用打包成 exe ,但是最近发现可以将其编译成二进制文件 pyc ,虽然反编译难度不大,但是也需要一些水平 编译生成 pyc: 单个文件 代码: import py_compile py_compile.compile("test.py") 命令行下: python -m py_compile test.py 多个文件 import compileall compileall.compile_dir("存放海量py的目录") 命令行…
pyc文件就是 Python 程序编译后得到的字节码文件 (py->pyc).pyc文件一般由3个部分组成:最开始4个字节是一个Maigc int, 标识此pyc的版本信息, 不同的版本的 Magic 都在 Python/import.c 内定义 接下来四个字节还是个int,是pyc产生的时间(1970.01.01到产生pyc时候的秒数)接下来是个序列化了的 PyCodeObject(此结构在 Include/code.h 内定义),序列化方法在 Python/marshal.c 内定义 输入一…
# -*- coding: cp936 -*- #python 27 #xiaodeng #python之模块py_compile用法(将py文件转换为pyc文件):二进制文件,是由py文件经过编译后,生成的文件. #办法一: import py_compile #加r前缀进行转义 py_compile.compile(r'D:\test.py')#py文件完整的路径. 办法二: #cmd命令符下操作步骤1.打开cmd,切换到 cd c:\\python34 2.运行 1)python -m p…
Python生成pyc文件 pyc文件是py文件编译后生成的字节码文件(byte code).pyc文件经过python解释器最终会生成机器码运行.所以pyc文件是可以跨平台部署的,类似Java的.class文件.一般py文件改变后,都会重新生成pyc文件. 为什么要手动提前生成pyc文件呢,主要是不想把源代码暴露出来. 生成单个pyc文件 对于py文件,可以执行下面命令来生成pyc文件. python -m foo.py 另外一种方式是通过代码来生成pyc文件. import py_compi…
C — malloc( ) and free( ) C 语言中使用malloc( )函数申请的内存空间,为什么一定要使用free释放? **malloc()函数功能:是从堆区申请一段连续的空间,函数结束后不会自动释放,如果不调用free()去释放的话,要等到程序结束后,操作系统才会自动回收. malloc后的内存除了等到free来释放,还可以等到程序运行结束时自动释放. 程序运行过程中,如果一直malloc内存而不释放会导致这部分内存不能被再次使用,即内存泄露.这样以来,应用程序会逐渐用光所有可…
Python的程序中,是把原始程序代码放在.py文件里,而Python会在执行.py文件的时候.将.py形式的程序编译成中间式文件(byte-compiled)的.pyc文件,这么做的目的就是为了加快下次执行文件的速度. 所以,在我们运行python文件的时候,就会自动首先查看是否具有.pyc文件,如果有的话,而且.py文件的修改时间和.pyc的修改时间一样,就会读取.pyc文件,否则,Python就会读原来的.py文件. 其实并不是所有的.py文件在与运行的时候都会差生.pyc文件,只有在im…
什么是pyc文件 pyc 是由py文件经过编译后二进制文件,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python 的虚 拟机来执行的.pyc的内容,是跟python的版本相关的,不同版本编译后的pyc文件是不同的,2.5编译的pyc文件,2.4版本的 python是无法执行的.pyc文件也是可以反编译的,不同版本编译后的pyc文件是不同. 为什么需要pyc文件 这个需求太明显了,因为py文件是可以直接看到源码的,如果你是开发商业软件的话,不可能把源码也泄…
一.前言 上一节我们知道了pyc文件是python在编译过程中出现的主要中间过程文件.pyc文件是二进制的,可以由python虚拟机直接执行的程序.分析pyc文件的文件结构对于实现python编译与反编译就显得十分重要. Python代码的编译结果就是PyCodeObject对象.PyCodeObject对象可以由虚拟机加载后直接运行,而pyc文件就是PyCodeObject对象在硬盘上的保存形式.因此我们先分析PyCodeObject对象的结构,随后再涉及pyc文件的二进制结构. 二.PyCo…
以 pyc 为扩展名的是Python的编译文件.其执行速度快于 py 文件且不能用文本编辑编辑查看.所以 pyc 文件往往代替 py 文件发布. Python 在执行时,首先会将 py 文件中的源代码编译成 PyCodeObject 写入 pyc 文件,再由虚拟机执行 PyCodeObject.当 Python 执行 import 时会先寻找对应的 pyc或 pyd(dll)文件,如果没有则将对应的py文件编译写入 pyc 文件.pyc文件也可以通过 python -m py_compile s…
python执行py文件的流程 当我们执行一个py文件的时候,直接python xx.py即可,那么这个流程是怎么样的呢.先说明一下,python执行代码实际上是先打开文件然后执行里面的代码,所以文件的扩展名不一定是py的形式,txt形式也是依旧可以成功执行,只要文件里面的代码是符合python规范的.下面我们来看看python是怎么执行py文件的. 先将文件里面的内容读取出来,scanner对其进行扫描,切分成一个个的token parser对token进行解析,建立抽象语法树(AST,abs…
1.Python由来 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承. 最新的TIOBE排行榜,Python赶超PHP占据第五!!! 由上图可见,Python整体呈上升趋势,反映出Python应用越来越广泛并且也逐渐得到业内的认可!!! Python可以应用于众多领域,如:数据分析.组件集成.网络服务.图像处理.数值计算和科学计算…
虽然这两种文件均保存字节代码,但.pyc文件是Python文件的编译版本,它有平台无关的字节代码,因此我们可以在任何支持.pyc格式文件的平台上执行它.Python会自动生成它以优化性能(加载时间,而非运行速度) 本文首发于Python黑洞网,博客园同步更新…
python引用C++ DLL文件若干解释及示例 首先说一下,python不支持C++的DLL,但是支持C的DLL:C++因为和C兼容可以编译为C的DLL,这是下面文章的背景与前提 首先我这儿的示例使用VS2017编译的DLL,先讲过程,再解释 第一步,新建DLL项目 确定之后我们可以看到默认的文件 这时候我们需要新建一个与Test.cpp对应的头文件 这是完成之后的代码结构 下面是Test.h文件的内容和Test.cpp文件的内容及相应解释 // Test.cpp : 定义 DLL 应用程序的…
方法 在环境变量文件~/.bashrc中添加 export PYTHONDONTWRITEBYTECODE=False source ~/.bashrc加载即可 如何从项目中删除所有.pyc文件 find . -name '*.pyc' -delete…
Python是一种面向对象.解释型计算机程序设计语言.Python 语法简洁.清晰,具有丰富和强大的类库.Python源代码遵循 GPL (GNU General Public License) 协议,由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年.Python 常被称为胶水语言,能把用其他语言编写的各模块 (尤其是 C/C++) 轻松地联结在一起.常见情形是,用 Python 快速生成程序原型 (有时甚至是程序最终界面),然后对其中有特别要求…