当前位置:首页 » 编程软件 » 如何编译出pyc文件并使用

如何编译出pyc文件并使用

发布时间: 2022-09-05 12:30:17

1. 怎样运行.pyc文件

pyc是一种
二进制文件
,是由py文件经过编译后,生成的文件,是一种byte
code,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的
字节码
,是由python的虚拟机来执行的,这个是类似于JAVA或者.NET的专
虚拟机
的概念.pyc的内容,是跟python的版本属相关的,不同版本编译后的pyc文件是不同的,2.5编译的pyc文件,2.4版本的python是无法执行的。

2. 如何手动编译成pyc,可以直接执行pyc么

pyc文件就是 py程序编译后得到的字节码文件 (py->pyc),python为了提高运行效率也会进行编译,有时候编译出pyc文件后,删除py文件也不会出错助于pyc文件的产生,给楼主举例加入你有一个逻辑文件abcd.py,里面有很多函数A,B,C,D,这个时候,如果你有一个test脚本去导入了abcd.py,只要你运行test脚本,在adcd.py目录下就会生成一个abcd.pyc文件,而不管你是否需要调用A,B,C,D函数

3. python编译

python的解释特性是将py编译为独有的二进制编码pyc文件,然后对pyc中的指令进行解释执行,但是pyc的反编译却非常简单,可直接反编译为源码,当需要将产品发布到外部环境的时候,源码的保护尤为重要。

4. 将.py 文件转换为.pyc 文件的命令要在哪里运行

在命令行输入:python-mpy_compilemyFile.py就可以生成对应的pyc文件了。之后就可以直接执行pyc文件。pythonmyFile.pyc。
python的pyc文件是一种二进制文件,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python的虚拟机来执行的,这个是类似于JAVA或者.NET的虚拟机的概念。
由于python程序的py文件很容易泄露源代码,所以python可以编译成保密的pyc文件。

5. python怎么编译成pyc文件

如下命令:

python-mcompileallxxx.py

可以对当前目录下的xxx.py文件生成pyc

6. python如何编译生成二进制文件

1、可以
2、当你编辑运行py文件后,就会生成对应文件名的pyc文件。
3、pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python的虚拟机来执行的,这个是类似于JAVA或者.NET的虚拟机的概念。pyc的内容,是跟python的版本相关的,不同版本编译后的pyc文件是不同的。
总之,是可以的

7. pyc能编译吗

生成单个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表示优化的字节码
dfile 这个参数英文看不明白,请各位大大赐教。(鄙视下自己)原文:it is used as the name of the source file in error messages instead of file
doraise 可以是两个值,True或者False,如果为True,则会引发一个PyCompileError,否则如果编译文件出错,则会有一个错误,默认显示在sys.stderr中,而不会引发异常
(来自python2.5文档)
批量生成pyc文件
一般来说,我们的工程都是在一个目录下的,一般不会说仅仅编译一个py文件而已,而是需要把整个文件夹下的py文件都编译为pyc文件,python又为了我们提供了另一个模块:compileall 。使用方法如下:

import compileall
compileall.compile_dir(r'H:/game')

这样就把game目录,以及其子目录下的py文件编译为pyc文件了。嘿嘿,够方便吧。来看下compile_dir函数的说明:

compile_dir(dir[, maxlevels[, ddir[, force[, rx[, quiet]]]]])
dir 表示需要编译的文件夹位置
maxlevels 表示需要递归编译的子目录的层数,默认是10层,即默认会把10层子目录中的py文件编译为pyc
ddir 英文没明白,原文:it is used as the base path from which the filenames used in error messages will be generated。
force 如果为True,则会强制编译为pyc,即使现在的pyc文件是最新的,还会强制编译一次,pyc文件中包含有时间戳,python编译器会根据时间来决定,是否需要重新生成一次pyc文件
rx 表示一个正则表达式,比如可以排除掉不想要的目录,或者只有符合条件的目录才进行编译
quiet 如果为True,则编译后,不会在标准输出中,打印出信息
(来自python2.5文档)
总结
通过上面的方法,可以方便的把py文件编译为pyc文件了,从而可以实现部分的源码隐藏,保证了python做商业化软件时,保证了部分的安全性吧,继续学习下,看怎么修改opcode。

8. python怎么打开pyc文件

关于PyCodeObject和pyc文件:在硬盘上看到的pyc文件,其实PyCodeObject才是Python编译器真正编译成的结果。当python程序运行时,编译的结果是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程。所以,我们可以说pyc文件其实是PyCodeObject的一种持久化保存方式。
你指的是编辑pyc还是导入pyc?
pyc是很难直接编辑的,最好是修改原来的py文件,再生产pyc。
导入pyc:假设你的源代码文件是model.py,经过Python37解释器运行后会自动生成modle.cpython-37.pyc。如果要在main.py中导入modle.cpython-37.pyc,需要把文件名中的cpython-37去掉,变成model.pyc,再放到main.py所在的文件夹里,在main.py中添加“import model”,即可导入model。

9. 如何编译Python程序生成.pyc文件

pyc文件就是
py程序编译后得到的字节码文件
(py->pyc),python为了提高运行效率也会进行编译,有时候编译出pyc文件后,删除py文件也不会出错助于pyc文件的产生,给楼主举例加入你有一个逻辑文件abcd.py,里面有很多函数A,B,C,D,这个时候,如果你有一个test脚本去导入了abcd.py,只要你运行test脚本,在adcd.py目录下就会生成一个abcd.pyc文件,而不管你是否需要调用A,B,C,D函数

10. Python程序代码混淆、编译、打包、运行(桌面程序防破解向)

像Python这种解释性的语言,要想私有化部署的同时又保护好源码,就像是对于鱼和熊掌的追求。

虽然做不到尽善尽美,但是对代码进行混淆,增加一点破解的难度,或许能规避一些泄露的风险。

本次演示环境:linux

确保要发布的包根目录("demo")中有__main__.py文件,这个是程序执行入口。

编译

批量改名.pyc文件

移动.pyc文件

清理.py文件

清理__pycache__文件夹

打包成zip

运行时只要将zip文件作为参数即可

最终整合脚本

调用方式

对于在变量和函数名上的混淆有点小儿科,而对于跨文件的类名的混淆又太容易实现。

所以对于混淆程度的取舍,要视工程的规模而定。

2.1 混淆工具pyminifier

在原来的工具 pyminifier上修复了几个bug。

安装:

python3 安装

或者clone下来,自行安装

使用例子

2.2 源码变更

不同的配置对于源码的要求不同,以下是笔者踩过的坑。

其他混淆想法

结合混淆、编译和打包,尝试出以下发布脚本。

主要的思路 :创建一个工作目录tmp,然后在此目录下混淆、编译python代码,完成后把内容打包成pyc文件,再将pyc文件和其他配置文件移动到dist,发布dist即可。

混淆的目的是最大程度保护源码,在发布到客户端后不被轻易破解。

热点内容
安卓系统密码忘了怎么办 发布:2025-02-13 21:49:28 浏览:971
找回密码发送信息是什么意思 发布:2025-02-13 21:49:26 浏览:639
织梦通用源码 发布:2025-02-13 21:48:41 浏览:438
pid算法调速 发布:2025-02-13 21:20:31 浏览:686
脚本中new 发布:2025-02-13 21:00:11 浏览:741
什么配置的笔记本电脑能玩神武 发布:2025-02-13 20:54:40 浏览:179
挑选云服务器需要注意什么 发布:2025-02-13 20:53:31 浏览:98
加密滴胶卡 发布:2025-02-13 20:30:48 浏览:275
javalogin 发布:2025-02-13 20:25:48 浏览:427
智联招聘无法上传照片 发布:2025-02-13 20:16:03 浏览:529