# 一.如何生成pyc/pyo文件

# 1.通过编写代码生成

import py_compile

# 参数如下

‘‘‘

def compile(file, cfile=None, dfile=None, doraise=False, optimize=-1):

file:要编译的源文件

cfile:编译之后的pyc文件路径和文件名,默认直接在file后面加上c或者o(会保存在当前目录的__pycache__文件夹下),

pyo相当于优化之后的pyc

dfile:把在错误信息中显示的file用dfile替换

doraise:True或False,如果为True,那么文件编译出错的话,则会引发一个PyCompileError。

为False的话,编译出错会显示在sys.stderr中

optimize:用于编译的优化级别,有效的值为-1,0,1,2。-1表示当前解释器的优化级别

使用命令行的时候如果设置优化级别,通过-O来设置。用于生成pyo文件了。

说白了后面几个参数基本上用不到

‘‘‘

py_compile.compile("your_py_file")

# 2.通过命令行生成

# python (-O) -m py_compile your_py_file.py ,加上-O表示优化

‘‘‘

有的时候我们不想只编译一个py文件,而是编译一个文件夹下的所有py文件怎么办呢?

python还为我们提供了一个模块

‘‘‘

import compileall

# 参数如下

‘‘‘

def compile_dir(dir, maxlevels=10, ddir=None, force=False, rx=None,

quiet=0, legacy=False, optimize=-1, workers=1):

dir:文件夹路径

maxlevels:递归编译的的子目录的层数,默认是把10层子目录的py文件编译成pyc

ddir:和上面的dfile类似

force:如果为True,将强制编译为pyc,即便现在pyc文件是最新的,依旧会编译一次

rx:一个正则表达式,可以排除掉不想编译的目录,只编译想要的目录

quiet:给我安静点,编译之后不会在标准输出中,打印信息

‘‘‘

compileall.compile_dir("your_dir")

# 同样可以使用命令行

# python -m compileall your_dir

我们来编译一个试试

首先我在foo.py中定义了一个函数fuck,然后在bar.py中进行编译,这里就不使用命令行了,效果是一样的。

会发现在当前目录下的__pycache__目录中多出了一个文件,正是刚才对编译的字节码文件。我们把它移动到当前目录来,并把foo.py删除,并把名字改一下,否则无法导入

发现依旧执行成功了,py文件和pyc文件可以按照相同的方式导入

--------------------------------------------------------------------

python生成pyc_如何生成pyc/pyo/pyd文件相关推荐

  1. python运行pyc和pyo文件_Python的py,pyc,pyo,pyd文件

    我们用python编写代码的时候,常常会遇到几个不同后缀的文件类型,有.py,有.pyc,有.pyo,有.pyd等.本文总结一下这几种后缀文件的区别: .py文件: 以.py扩展名的文件是源代码文件, ...

  2. Python:打包生成.pyc、.pyd文件

    pyd文件是什么 pyd文件类似于DLL, 一般用C/C++语言编译而成, 可用作模块导入Python程序中. pyd文件仅适用于特定版本的Python, 不同版本间互不兼容, 如Python3.8不 ...

  3. Python文件.py||.pyi||.pyc||.pyo||.pyd等各种文件后缀区别(全面汇总)

    .py:这通常是您编写的输入源代码. .py3: Python3脚本(Python3脚本通常以.py而不是.py3结尾,很少使用) .pyc:这是编译好的字节码.如果您导入一个模块,python将生成 ...

  4. python中 .py .pyc .pyw .pyo .pyd文件

    转:https://blog.csdn.net/willhuo/article/details/49886663 DLL文件即动态链接库文件,是一种可执行文件,它允许程序共享执行特殊任务所必需的代码和 ...

  5. Python文件.py||.pyi||.pyc||.pyo||.pyd等各种文件后缀区别

    .py:这通常是您编写的输入源代码. .py3: Python3脚本(Python3脚本通常以.py而不是.py3结尾,很少使用) .pyc:这是编译好的字节码.如果您导入一个模块,python将生成 ...

  6. VS2019编译自动微分库ADOL-C并利用SWIG打包为.pyd文件

    目录 前言 一.VS编译ADOL-C 二.SWIG生成.py和.cxx接口文件 三.VS编译.cxx生成.pyd 1. VS项目属性配置 2. 生成.pyd文件 前言 自动微分库ADOL-C提供了SW ...

  7. python代码编译成pyd_python如何编译py文件生成pyc、pyo、pyd以及如何和C语言结合使用...

    python执行py文件的流程 当我们执行一个py文件的时候,直接python xx.py即可,那么这个流程是怎么样的呢.先说明一下,python执行代码实际上是先打开文件然后执行里面的代码,所以文件 ...

  8. windows平台 python生成 pyd文件

    Python的文件类型介绍: .py       python的源代码文件 .pyc     Python源代码import后,编译生成的字节码 .pyo     Python源代码编译优化生成的字节 ...

  9. Python文件格式 .py .pyc .pyw .pyo .pyd的主要区别

    Python是一种面向对象.解释型计算机程序设计语言.Python 语法简洁.清晰,具有丰富和强大的类库. Python源代码遵循 GPL (GNU General Public License) 协 ...

最新文章

  1. package.json mysql_package.json入门
  2. snowflake 使用_如何使用机器学习模型直接从Snowflake进行预测
  3. python如何引用txt_如何使用pip requirements.txt文件安装python模块附加组件
  4. 科目三靠边停车驾驶流程
  5. 我是新人我最强----团队新手培训计划展开
  6. 打破行业壁垒!阿里云OpenSearch开启个性化搜索里程碑
  7. linux脚本监控某一进程,linux监控某个进程的运行shell脚本
  8. 关于pytorch里面的图像变换
  9. nmos导通流向_技术参数详解,MOS管知识最全收录!
  10. mysql/mariadb主从复制
  11. Jmeter入门6 参数化—CSV Data Set Config 通过文件导入数据
  12. java字段偏移量什么意思_求结构体的字段的偏移量
  13. python做性能测试_Python做性能测试-1、Locust基础篇
  14. 这一年,这些书:2020年读书笔记
  15. 工业数据采集网关的特点及应用场景
  16. plc变频器c语言,PLC控制变频器的几种方法
  17. PgSQL——学习笔记七: LIKE 子句:获取包含某些字符的数据 LIMIT 子句:限制 SELECT 语句中查询的数据的数量
  18. 解密猫晚直播技术:如何保障全球200多个国家和地区同时在线狂欢?
  19. excel系列【统计一列中的不重复项】
  20. linux下打印图片不显示出来的,为什么打印机打印不了图片_解决打印机打印不了图片的方法-系统城...

热门文章

  1. sql语句-平均工资-员工工资
  2. Linux awk命令详解
  3. linux服务器清理内存,释放Linux服务器内存
  4. MyBatisPlus分页插件返回结果records为空
  5. 求助,mybatisplus分页查询时records显示为null,但控制台可以打印查询的结果
  6. 51cto微职位MySQL数据库高级工程师
  7. mysql不小心把表清空_mysql 清空表 delete后怎么恢复
  8. 接口自动化测试面试题大全(合适各级软件测试人员)
  9. App一键登录接入详解
  10. 【文献调研】多模生理信号融合方法研究(主脑电)