python py生成为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,则编译后,不会在标准输出中,打印出信息。

代码片段:

#-*- coding=utf-8

‘‘‘

#编译目录下所有py文件为 pyc文件

import compileall

compileall.compile_dir(r"d:\python")  #r"d:\python" 路径

‘‘‘

#编译 单个py文件为 pyc文件

import py_compile

py_compile.compile(r"d:\python\test.py") # r"d:\python\test.py":路径

时间: 2024-10-12 20:20:26

python py生成为pyc文件的相关文章

如果解释Python,什么是.pyc文件?

我已经了解Python是一种解释型语言......但是,当我查看我的Python源代码时,我看到.pyc文件,Windows将其识别为“编译的Python文件”. 这些来自哪里? #1楼 Python代码经历了两个阶段. 第一步将代码编译成.pyc文件,这实际上是一个字节码. 然后使用CPython解释器解释此.pyc文件(字节码). 请参阅此链接. 这里用简单的术语解释代码编译和执行的过程. #2楼 它们包含字节代码 ,这是Python解释器编译源的代码. 然后,此代码由Python的虚拟机执

Python生成pyc文件

pyc文件是py文件编译后生成的字节码文件(byte code).pyc文件经过Python解释器最终会生成机器码运行 为什么要手动提前生成pyc文件呢,主要是不想把源代码暴露出来. python -m foo.py    #生成单个pyc文件

python之模块py_compile用法(将py文件转换为pyc文件)

# -*- coding: cp936 -*- #python 27 #xiaodeng #python之模块py_compile用法(将py文件转换为pyc文件) #二进制文件,是由py文件经过编译后,生成的文件. ''' import py_compile #不带转义r py_compile.compile('D:\test.py') Traceback (most recent call last): File "<pyshell#1>", line 1, in &l

【Python】将python的py文件编译成保密的pyc文件

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

python py、pyc、pyo、pyd文件区别

py是源文件,pyc是源文件编译后的文件,pyo是源文件优化编译后的文件,pyd是其他语言写的python库 python并非完全是解释性语言,它是有编译的,先把源码py文件编译成pyc或者pyo,然后由python的虚拟机执行,相对于py文件来说,编译成pyc和pyo本质上和py没有太大区别,只是对于这个模块的加载速度提高了,并没有提高代码的执行速度,通常情况下不用主动去编译pyc文件,文档上说只要调用了import model那么model.py就会先编译成pyc然后加载 1.如果需要特殊的

Python编程时.py与.pyc文件的介绍

Python的程序中,是把原始程序代码放在.py文件里,而Python会在执行.py文件的时候.将.py形式的程序编译成中间式文件(byte-compiled)的.pyc文件,这么做的目的就是为了加快下次执行文件的速度. 所以,在我们运行python文件的时候,就会自动首先查看是否具有.pyc文件,如果有的话,而且.py文件的修改时间和.pyc的修改时间一样,就会读取.pyc文件,否则,Python就会读原来的.py文件. 其实并不是所有的.py文件在与运行的时候都会差生.pyc文件,只有在im

python面试题之请谈谈.pyc文件和.py文件的不同之处

虽然这两种文件均保存字节代码,但.pyc文件是Python文件的编译版本,它有平台无关的字节代码,因此我们可以在任何支持.pyc格式文件的平台上执行它.Python会自动生成它以优化性能(加载时间,而非运行速度) 本文首发于Python黑洞网,博客园同步更新 原文地址:https://www.cnblogs.com/pythonzhichan/p/11403461.html

Python学习之pyc文件与code对象

本文和大家分享的主要是python中的pyc文件与code对象相关内容,一起来看看吧,希望对大家学习python有所帮助. python对源程序编译结果是生成一个 .pyc 文件. python对 .py 文件的编译结果是字节码, 为了能复用而不需要重新编译才有了写成 .pyc 文件. 对于解释器来说 PyCodeObject 对象才是真正编译结果, pyc文件只是这个对象在硬盘上的表现形式. PyCodeObject [code.h]typedef struct { PyObject_HEAD

python .pyc文件解释

Python是一门解释型语言? 没学Python前,一直以为Python是一门解释型语言,当学习是,发现了*.pyc文件的存在,才知道哪是一厢情愿了.如果Python是解释型语言,那么生成*.pyc文件是什么呢?C应该是compiled的缩写才对啊! 下面看看一些基础概念. 解释型语言和编译型语言 计算机是不能够识别高级语言的,所以当我们运行一个高级语言程序的时候,就需要一个"翻译机"来从事把高级语言转变成计算机能读懂的机器语言的过程.这个过程分成两类,第一种是编译,第二种是解释. 编