python的程序可以编译成二进制可执行文件么

author author     2023-05-03     406

关键词:

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.其中的 -m 相当于脚本中的import,这里的-m py_compile 相当于上面的 import py_compile
2.-O 如果改成 -OO 则是删除相应的 pyo文件,具体帮助可以在控制台输入 python -h 查看
========================
from:http://blogold.chinaunix.net/u3/93255/showart_1944929.html
什么是pyc文件
pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python的虚拟机来执行的,这个是类似于JAVA或者.NET的虚拟机的概念。pyc的内容,是跟python的版本相关的,不同版本编译后的pyc文件是不同的,2.5编译的pyc文件,2.4版本的 python是无法执行的。
什么是pyo文件
pyo是优化编译后的程序 python -O 源文件即可将源程序编译为pyo文件

什么是pyd文件
pyd是python的动态链接库。

为什么需要pyc文件
这个需求太明显了,因为py文件是可以直接看到源码的,如果你是开发商业软件的话,不可能把源码也泄漏出去吧?所以就需要编译为pyc后,再发布出去。当然,pyc文件也是可以反编译的,不同版本编译后的pyc文件是不同的,根据python源码中提供的opcode,可以根据pyc文件反编译出 py文件源码,网上可以找到一个反编译python2.3版本的pyc文件的工具,不过该工具从python2.4开始就要收费了,如果需要反编译出新版本的pyc文件的话,就需要自己动手了(俺暂时还没这能力^--^),不过你可以自己修改python的源代码中的opcode文件,重新编译 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文件的路径
cfile 表示编译后的pyc文件名称和路径,默认为直接在file文件名后加c 或者 o,o表示优化的字节码

from:http://www.cnblogs.com/dkblog/archive/2009/04/16/1980757.html
参考技术A 青蛙地宝吐了个leafUi9

python可以编译成exe程序吗

参考技术APyInstaller的原理简介PyInstaller其实就是把python解析器和你自己的脚本打包成一个可执行的文件,和编译成真正的机器码完全是两回事,所以千万不要指望成打包成一个可执行文件会提高运行效率,相反可能会降低运行效... 查看详情

perl程序如何编译成二进制文件并使用

我使用pp工具将编写的pl程序转换成二进制文件,步骤如下:/usr/local/bin/pp<filename>.pl输出为a.out。不知如何使用,请高手指点!可以直接执行,但编译成二进制是为了给程序加密这个完全是转自网络资源,自己懒,不愿意写了... 查看详情

软件管理

基本概念1.程序:可执行的二进制文件,由指令和数据组成2.链接库:二进制文件,不可执行(无执行入口),可被程序调用。3.脚本:可执行文本文件,执行时由解释器转义成CPU可以执行的机器码。4.编译:高级编程语言编写的... 查看详情

如何将 python 3 程序编译成适合天真的 Windows 用户的独立可执行文件? [复制]

】如何将python3程序编译成适合天真的Windows用户的独立可执行文件?[复制]【英文标题】:HowcanIcompileapython3programintoastandaloneexecutablesuitablefornaivewindowsusers?[duplicate]【发布时间】:2014-12-1603:08:57【问题描述】:我查看了档案,但没... 查看详情

在c语言中“可执行程序”是啥意思?

...行程序就是将用文本信息表示的程序翻译成计算机认识的二进制代码串。首先,我们先用C语言把源代码写好,然后交给C语言编译器。C语言编译器内部分为前端和后端。(1)编译器前端前端负责将C语言代码进行词法和语法上的... 查看详情

c/c++语言编译生产可执行的二进制文件的过程??求大神详尽解释,

...编成机器码,形成对应的.o目标文件,此时是不可执行的二进制文件。生成对应的清单文件。为了连接需要,还会生成未定向符号表、导出符号表、地址重定向表等等。连接。先根据对应的清单文件、连接文件及之间的调用关系... 查看详情

语言分类

编译型语言:首先把所有的源代码转换成二进制,生成可执行文件,再执行解释型语言:程序执行时,才一句一句地解释成机器语言执行,速度相当来说比较慢动态语言:不用声明类型,在执行过程中检查静态语言:需声明类型... 查看详情

09高级语言-编译型(代码片段)

...境独立执行(编译后生成的可执行文件,是CPU可以理解的二进制的机器码组成的),使用比较方便、效率较高。但英语程序一旦需要修改,必须先修改源代码。再重新编译生成心的目标文件(*.obj,也是OBJ文件)才能 查看详情

c语言是如何编译成二进制

...给计算机看的为什么LINUX是用C语言编译,难道C语言就是二进制????我跟本搞不懂源代码会经过预编译--->编译---->汇编----->连接几个步骤最终生成可执行文件.1.预编译,把源代码中的宏展开并把包含的文件的源代码插入... 查看详情

c#如何编译为二进制可执行文件?

c#如何编译为二进制单个可执行文件需求说明:运行环境:Windows。小程序,不涉及数据库,双击就可以运行,运行时无需提示安装.netFramework(无论运行主机上是否有此环境)!(注意:类似http://wenwen.soso.com/z/q126656801.htm提供Vs安... 查看详情

总结1

...型是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,执行速度很快,但是开发效率慢。并且不可以跨平台。2.解释型(java、python、ruby、php、perl、erlang)解释型... 查看详情

解释器编译器区别,链接器作用。

...器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快;而解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如... 查看详情

重定位和链接脚本

...令是“位置有关编码”位置无关编码:汇编源文件编码成二进制可执行程序时,编码方式与位置无关。在我们写程序时,必须给编译器链接器指定地址。将来的程序被执行时必须放在当时编译链接时给定的地址才能运行。位置有... 查看详情

程序的静态链接(代码片段)

...译是将程序员写的代码翻译成机器码,即机器能够解析的二进制码,生成二进制目标文件,既然编译过程已经生成了机器能够解析的二进制码,那为何还需要链接过程呢?在学生时代会经常写一些基于C语言的小程序,那时候习... 查看详情

第22章软件安装:源码与tarball

...码编译成机器能看得懂的语言可执行文件:经过编译变成二进制程序后机器看得懂可以执行的文件什么是函数库类似子程序的角色,可以被调用来执行的一段功能函数什么是make与configure一套软件不仅仅有一个程序,而是一对程... 查看详情

python3.6如何生成exe程序

参考技术APyInstaller的原理简介PyInstaller其实就是把python解析器和你自己的脚本打包成一个可执行的文件,和编译成真正的机器码完全是两回事,所以千万不要指望成打包成一个可执行文件会提高运行效率,相反可能会降低运行效... 查看详情

02go程序执行流程(代码片段)

一、把源码编译成二进制后执行.go代码源文件=>gobuild=>可执行文件(.exe文件或者linux二进制文件)=>运行结果二、对源码直接运行1.go源代码文件=>gorun=>运行结果2源代码编译且运行(不会生成二进制文件)三、二者区别:1.使... 查看详情

linux下python编译pyc运行错误

...我程序用到第三方模块想请教下怎么编译成可直接运行的二进制文件参考技术Apyc不是可执行文件可以试试pyinstaller这个打包工具,用pip安装,安装之后就可以直接运行下面的命令pyinstaller-w--onefilexx.py本回答被提问者和网友采纳 ... 查看详情