python的编译和解释】的更多相关文章

编译和解释 1.编译: 将源代码一次性转换成目标代码的过程 源代码 → 编辑器 →目标代码 →程序执行(同时程序输入)→结果输出 2.解释: 将源代码逐条转换成目标代码同时逐条运行的过程 源代码+程序输入 →结果输出 根据执行方式不同,编程语言分为两大类 静态语言:使用编译执行的编程语言:C/C++语言.java语言 优势:一次性生存目标代码,优化更充分,程序执行速度更快 脚本语言:使用解释执行的编程语言:python,JavaScript,php 优势:执行程序时需要源代码,维护更灵活.源代码…
1. CPython默认的标准解释器编译器.JPython支持Java集成,可以生成Java字节码并在JVM中解释执行.IronPython支持.NET集成. 2. 下次运行程序时,python自动检查源文件(.py)与字节码文件(.pyc)的时间戳,如果相同,就跳过编译:如果不同,就重新编译生成一个新的pyc字节码文件,覆盖掉原来的. 3. 如果python无法在机器上写入字节码(例如缺少写入权限),程序仍可以工作:字节码将在内存中生成,并在程序运行结束时被丢弃.(windows中默认安装并运…
1.python介绍 Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/)是一种广泛使用的解释型.高级编程.通用型编程语言,由吉多.范罗苏姆创造,第一版发布于1991年.可以视之为一种改良(加入一些其他编程语言的优点,如面向对象)的lisp.Python的设计哲学强调代码的可读性和简洁的语法(尤其是使用空格缩进划分代码块,而非使用大括号或者关键词).相比于C++或Java,Python让开发者能够用更少的代码表达想法.不管是小型还是大型程序,该语言都试图让程序的结构清晰明…
虽然Python被说成是一种解释型语言,但是实际上,Python源程序要先经过编译,然后才能运行. 与Java语言类似,Python源程序编译之后得到的是字节码,交由Python虚拟机来运行. 关于这一点,我们可以这样来验证: #!/usr/bin/python print "position1" 1_syntax_error_identifier print "position2" 将它保存为program.py,然后在shell窗口中运行它: root@dell…
python是一门动态解释型语言.为了理解"动态"和"解释",前几天都在看<Python源码剖析>,以下是自己的一些总结. 先说解释,除开py2exe等不说(因为我不了解),python脚本需要交由python虚拟机去解释执行,当然大家都知道里面还有一个编译的过程,python虚拟机解释的只是编译后的字节码,而源代码的解释工作由python的编译模块完成.那么字节码是怎么解释执行的呢?我以为会很优雅,但实际上只是一个很长的switch-case,有171…
1 - Python编译过程涉及的文件 py 源代码文件,由python.exe解释,可在控制台下运行,可用文本编辑器进行编辑: pyc 源代码文件经过编译后生成的二进制文件,无法用文本编辑器进行编辑: 执行一个.py文件后,并不会自动生成对应的.pyc文件,需要指定触发Python来创建pyc文件: - pyc是由py文件经过编译后生成的二进制字节码(byte code)文件: - pyc文件的加载速度比py文件快: - pyc文件是一种跨平台的字节码,由python的虚拟机来执行: - py…
在介绍动态可执行方法前,本节先介绍一下Python代码编译有关的知识,因为部分内容和动态执行有些关联. 一.    Python解释器的功能 Python虽然是解释型语言,但Python代码也是可编译的,编译源代码可以在一定程度上达到源代码产权保护. 防止用户篡改源代码.加载代码速度加快的目的.Python 解释器由一个编译器和一个虚拟机构成,编译器负责将源代码转换成字节码文件,而虚拟机负责执行字节码.Python可以对源代码直接通过解释器执行,也可以先编译成字节码再执行.Python编译并不是…
 python下编译py成pyc和pyo   其实很简单, 用 python -m py_compile file.py python -m py_compile /root/src/{file1,file2}.py 编译成pyc文件. 也可以写份脚本来做这事: Code: import py_compile py_compile.compile('path') //path是包括.py文件名的路径 用 python -O -m py_compile file.py 编译成pyo文件. 1.其中…
开发类在线工具:https://tool.lu/一个反编译网站:https://tool.lu/pyc/ 一看这个标题,就是搞坏事用的, 用 java 写程序多了,很习惯用反编译工具了,而且玩java 的人认为那是很正常的事.所以很多商业应用的java 程序都用了混淆器或者自己写了classloader,防止别人反编译,其实理论上还是可以反编译的,只是难度加大了.我用python,django 两年多了,虽然都是业余时间再玩,自己也写过一些应用,有时候想如果某些核心的代码不公开能反编译吗,肯定是…
把python源文件编译成so文件 前言 实际上属于一种代码混淆/加密的技术,大家知道python的源文件放在那里,大家是都可以看的,不像C语言编译出来可以拿编译后的东西去运行,所以就出现了这种需求.原理相当于将python编译成c,然后再转成.so文件 .so文件为动态连结库,可以在程序运行时动态链接,类似于windows的dll文件. 在网上搜了一下,常用的有2种方法: 通过gcc(make)来操作 使用python来操作 准备工作 在目录下创建__init__.py和hello.py he…
@python __set__ __get__ 等解释 如果你和我一样,曾经对method和function以及对它们的各种访问方式包括self参数的隐含传递迷惑不解,建议你耐心的看下去.这里还提到了 Python属性查找策略,使你清楚的知道Python处理obj.attr和obj.attr=val时,到底做了哪些工作. Python中,对象的方法也是也可以认为是属性,所以下面所说的属性包含方法在内. 先定义下面这个类,还定义了它的一个实例,留着后面用. class T(object): nam…
(译)Python关键字yield的解释(stackoverflow): http://stackoverflow.com/questions/231767/the-python-yield-keyword-explained 3.1. 提问者的问题 Python关键字yield的作用是什么?用来干什么的? 比如,我正在试图理解下面的代码: def node._get_child_candidates(self, distance, min_dist, max_dist): if self._l…
语言发展 计算机的硬件仅仅能识别0和1组成的机器指令,而机器指令是最主要的计算机语言,可是我们平时进行程序设计时肯定不会用机器语言来编程,由于用它的效率低.更让人难以理解. 因此聪明的人类发明了汇编语言.它使用符号来表示指令,比如用ADD表示加法.这就easy理解了.可是汇编语言和机器语言十分接近,其书写取决于机器指令,因此它还是一种面向机器的语言.所以称它为低级语言. 对应的,又在此基础上,开发出了功能更强.抽象更高的面向各类应用的程序语言.称为高级语言.比如VB,C++,C#,Java等,大…
error info [root@chenbj psutil-2.0.0]# python setup.py install running install running bdist_egg running egg_info writing psutil.egg-info/PKG-INFO writing top-level names to psutil.egg-info/top_level.txt writing dependency_links to psutil.egg-info/de…
学习过C语言或者Java语言的盆友应该都知道程序运行必然有主程序入口main函数,而python却不同,即便没有主程序入口,程序一样可以自上而下对代码块依次运行,然后python不少开源项目或者模块中依然存在 __name__ == “__main__” 这种写法,具体是上面意思呢? 一.语义解释 1.__name__ __name__ 是python的内置属性,是系统全局变量!每一个py文件都有一个属于自己的__name__: 如果py文件作为模块被导入(import),那么__name__就…
python执行py文件的流程 当我们执行一个py文件的时候,直接python xx.py即可,那么这个流程是怎么样的呢.先说明一下,python执行代码实际上是先打开文件然后执行里面的代码,所以文件的扩展名不一定是py的形式,txt形式也是依旧可以成功执行,只要文件里面的代码是符合python规范的.下面我们来看看python是怎么执行py文件的. 先将文件里面的内容读取出来,scanner对其进行扫描,切分成一个个的token parser对token进行解析,建立抽象语法树(AST,abs…
原文:https://blog.csdn.net/zylove2010/article/details/79593655 在某些场景下,若不方便将python编写的源码工程直接给到其他人员,则可以将python工程编译成跨平台可执行文件(.pyc)解决. 具体操作如下: import py_compile import compileall py_compile.compile(r”e:/ROSE_MuliDevice/SemanticAPI.py”) #—单个py文件 compileall.c…
内容参考如下文章,加入了自己的干货: https://www.cnblogs.com/huluwahaha/p/7503930.html 在sublime中如何配置Python的编译环境呢? 打开Sublime Text 3 打开Sublime Text 3,依次进入Tools--> build system菜单(如图) 首先我们看到默认有一个Python编译版本,我本机默认的是Anaconda3集成环境安装自带的Python3. 配置代码 在打开的文件里输入配置代码,命名文件为MosesMin…
相信看这篇文章的都知道caffe是干嘛的了,无非就是深度学习.神经网络.计算机视觉.人工智能这些,这个我就不多介绍了,下面说说我的安装过程即遇到的问题,当然还有解决方法. 说下我的环境:1>虚拟机:VM Workstation 12 Player 2>OS:redhat7.1 虚拟机装好之后因为RedHat的yum服务是收费的,为了倒腾免费yum源看网上的教程,坑了一b,浪费了N久时间,最后得高人指点得以成功,写了个blog:redhat配置免费yum源 步入正题,安装caffe.再次建议大家…
计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序. 翻译的方式有两种,一个是编译,一个是解释.两种方式只是翻译的时间不同 计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序. 翻译的方式有两种,一个是编译,一个是解释.两种方式只是翻译的时间不同. 编译(compilation , compile)定义分为静态和动态两种: 1.利用编译程序从源语言编写的源程序产…
如果你曾经写过或者用过 Python,你可能已经习惯了看到 Python 源代码文件:它们的名称以.Py 结尾.你可能还见过另一种类型的文件是 .pyc 结尾的,它们就是 Python "字节码"文件.(在 Python3 的时候这个 .pyc 后缀的文件不太好找了,它在一个名为__pycache__的子目录下面.).pyc文件可以防止Python每次运行时都重新解析源代码,该文件大大节省了时间. Python是如何工作的 Python 通常被描述为一种解释语言,在这种语言中,你的源代…
如何反编译pyc uncompyle2 是一个可以将pyc文件转换为py源码的工具 下载地址:https://github.com/wibiti/uncompyle2 安装: setup.py install 参数: Usage: uncompyle2 [OPTIONS]... [ FILE | DIR]... Examples: uncompyle2 foo.pyc bar.pyc # decompile foo.pyc, bar.pyc to stdout uncompyle2 -o . f…
3.1. 提问者的问题 Python关键字yield的作用是什么?用来干什么的? 比如,我正在试图理解下面的代码: def node._get_child_candidates(self, distance, min_dist, max_dist): if self._leftchild and distance - max_dist < self._median: yield self._leftchild if self._rightchild and distance + max_dist…
以前一直用Codeblocks写C++,eclipse写Java,再在eclipse里面集成PyDev写Python,首先无法忍受代码自动补全功能(这个功能也许你万分喜欢),也无法忍受如此重量级的IDE导致运行起来感觉很笨重.后来发现EditPlus完全符合我自己的要求,不过要自己配置一下编译运行环境而已,这也不过几分钟的事儿,而且我喜欢自定义的代码高亮颜色(用Vim的时候就喜欢这么做了).下面介绍EditPlus配置C++.Python.Java三种语言的编译运行环境,这三种语言也是我经常用的…
这段时间在学Android应用开发,在想既然是用Java开发的应该非常好反编译从而得到源码吧,google了一下,确实非常easy,下面是我的实践过程. 在此郑重声明,贴出来的目的不是为了去破解人家的软件,全然是一种学习的态度,只是好像通过这样的方式也能够去汉化一些外国软件. 本文Android反编译教程,測试环境: Win7 Ultimate x64 Ubuntu 12.04 x86_x64 反编译工具包 下载 (2012-10-10更新) 一.Apk反编译得到Java源码 下载上述反编译工具…
一般情况下 python 不需要手动编译字节码.但是如果不想直接 release 源代码给其他人,将文件编译成字节码,可以实现一定程度的信息隐藏. 1) 使用模块 py_compile 编译一个单文件 import py_compile py_compile.compile('./demo.py') 2) 使用模块 compileall 递归的编译一个文件包 import compileall compileall.compile_dir('./test') 3) 使用模块 compileall…
C语言: .c文件 编译器gcc//my_code下hello.c文件 $sudo apt install gcc $gcc hello.c -o hello $./hello C++: .cpp文件 编译器g++//my_code下hello.cpp文件 $sudo apt install g++ $gcc hello.cpp -o hellocpp $./hellocpp python: .py文件 不用编译//my_code下hello.py文件 $python3 hello.py go:…
转自: http://python.jobbole.com/83610/ 本文作者: 伯乐在线 - wklken .未经作者许可,禁止转载!欢迎加入伯乐在线 专栏作者. 翻译 来源于stackoverflow问答,原文链接 Here SN上面看到的,顺手翻译下,第一次翻译,好多地方翻的不是很好 :) 问题:     1 Python中yield关键字的作用是什么?它做了什么? 例如,我想理解以下代码     1 2 3 def node._get_child_candidates(self, d…
Python 的一大好处是调用C扩展程序相当方便,但是 Windows 下的话,编译器版本是一个大问题.以Python27为例,官方版本时采用VC2008编译的.在setup.py中添加Extension 语句,默认搜索的的是 VS90COMNTOOLS.如果没有安装对于的版本就是大问题了. 如何 work around 呢?目前采用如下代码来绕过编译器版本问题. import os import platform as plat from sys import platform if plat…
这个月太忙,最近不太太平,我的愿望是世界和平! ================================== 今天也在找python的预编译,早上写的sql是拼接来构成的.于是找了2篇文章,还不错,分享一下大家学习. ps:直接引用别人的话了,因为他们说的已经很好了. 错误用法: sql = "select id,type,name from xl_bugs where id = %s and type = %s" % (id, type) cur.execute(sql) 这…