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
② 有什么工具可以将python编译好的代码.pyc反编译为.py
depython是用来反编译经过python编译的后缀名为pyc或pyo的字节码文件的.
如果你找不到你写的python源代码,depython可以帮助你通过pyc/pyo文件来找回这些源代码。
经depython反编译得出的python源代码,和你原来的代码文件几乎完全一样。
http://www.depython.net/?lang=zh
③ python的脚本文件的扩展名是pyd
扩展名说明
1、通常写Python脚本都是以.py为扩展名,.pyc二进制文件可以反编译成.py文件。
2、反编译软件叫EasyPythonDecompiler,可以反编译一个文件,也可以是一个文件夹。
④ python2.3编写的.pyc,如何反编译成.py
DePython是用来反编译经过python编译的后缀名为pyc或pyo的字节码文件的.
如果你找不到你写的python源代码,Depython可以帮助你通过pyc/pyo文件来找回这些源代码。 经DePython反编译得出的python源代码,和你原来的代码文件几乎完全一样。
http://www.depython.net/?lang=zh
⑤ python反编译遇到的新问题,求解
这个后缀应该算是除了python的py代码外,遇到最多的一种文件类型了。虽然python被普遍认为是一种解释性语言,但谁说它就不能被编译后执行呢?python通过compile生成的pyc文件,然后由python的虚拟机执行。相对于py文件来说,编译成pyc本质上和py没有太大区别,只是对于这个模块的加载速度提高了,并没有提高代码的执行速度,通常情况下不用主动去编译pyc文件。
⑥ python源码编程成pyc后,怎么防止反编译
无法防止反编译,但可以混淆,让你即使反编译了,也看不懂语法
下面一段源码
sd=1
defseed(s):
globalsd
sd=s
defrandn(n):
globalsd
sd=(sd*1103515245+12345)&0x7fffffff
returnsd%n
defmain():
seed(11)
foriinxrange(4):
printrandn(313)
if__name__=='__main__':
main()
混淆后
oo000=1
if9-9:Ii.o0o00Oo0O-iI11I1II1I1I
defoooo(s):
globaloo000
oo000=s
if11-11:ii1I-ooO0OO000o
defii11i(n):
globaloo000
oo000=(oo000*1103515245+12345)&0x7fffffff
returnoo000%n
if66-66:iIiI*iIiiiI1IiI1I1*o0OoOoOO00
defI11i():
oooo(11)
forO0Oinxrange(4):
printii11i(313)
if78-78:i11ii11iIi11i.oOoO0oo0OOOo+IiiI/Iii1ii1II11i
if__name__=='__main__':
I11i()#
⑦ python生成的exe,反编译成py的工具,大神提供下,感谢
你解开执行文件。如果是单个的文件,则执行它的时候在临时目录里可以找到解开的包。
在解开后的目录中找到pyc文件,然后利用反编译工具就可以将pyc反编译成py文件。
但是有些程序是做了加密的。它们的pyc是它们重新写python编译器后自定义的加密格式,用通常的办法无法解开。 需要在内存里反编译。
-------------
pyc反编译工具有很多
你搜索uncompyle2, decompyle2, DePython, unpyc, uncompyle, pycdc 等
听说python2.7而言, uncompyler是最好用的工具。
⑧ python写的程序,转成了exe文件,怎么进行反编译为python源码
1、电脑桌面,输入“win+R”组合键,在弹出窗口中输入“cmd”,点击确定。