Python生成pyc文件

本文介绍了Python生成pyc文件的相关知识。pyc文件是py文件编译后的字节码文件,可跨平台部署。手动提前生成pyc文件可避免源代码暴露。文中给出了生成单个pyc文件的命令和代码方式,还介绍了批量生成pyc文件的模块及函数参数含义和命令行操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python生成pyc文件
pyc文件是py文件编译后生成的字节码文件(byte code)。pyc文件经过python解释器最终会生成机器码运行。所以pyc文件是可以跨平台部署的,类似Java的.class文件。一般py文件改变后,都会重新生成pyc文件。

为什么要手动提前生成pyc文件呢,主要是不想把源代码暴露出来。

生成单个pyc文件
对于py文件,可以执行下面命令来生成pyc文件。

python -m foo.py
1
另外一种方式是通过代码来生成pyc文件。

import py_compile
py_compile.compile('/path/to/foo.py')
1
2
批量生成pyc文件
针对一个目录下所有的py文件进行编译。python提供了一个模块叫compileall,具体请看下面代码:

import compileall
compileall.compile_dir(r'/path')
1
2
这个函数的格式如下:

compile_dir(dir[, maxlevels[, ddir[, force[, rx[, quiet]]]]])
1
参数含义:
- maxlevels: 递归编译的层数
- ddir: If ddir is given, it is prepended to the path to each file being compiled for use in compilation time tracebacks, and is also compiled in to the byte-code file, where it will be used in tracebacks and other messages in cases where the source file does not exist at the time the byte-code file is executed. (谁能翻译一下( ⊙o⊙?)不懂)
- force: 如果True,不论是是否有pyc,都重新编译
- rx: 一个正则表达式,排除掉不想要的目录
- quiet:如果为True,则编译不会在标准输出中打印信息

命令行为:

python -m compileall <dir>
1
@完

参考:
- http://www.cnblogs.com/dkblog/archive/2009/04/16/1980757.html
- https://docs.python.org/2/library/compileall.html
- https://docs.python.org/3/library/compileall.html
- http://blog.youkuaiyun.com/loveyilili/article/details/12567729
---------------------
作者:kriszhang
来源:优快云
原文:https://blog.youkuaiyun.com/kriszhang/article/details/68947242
版权声明:本文为博主原创文章,转载请附上博文链接!

转载于:https://www.cnblogs.com/tongongV/p/10956855.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值