首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么imp.get_suffixes()列表中缺少'pyo‘?

为什么imp.get_suffixes()列表中缺少'pyo‘?
EN

Stack Overflow用户
提问于 2014-05-15 17:14:48
回答 1查看 74关注 0票数 2

函数imp.get_suffixes()返回描述特定类型模块的元组列表。

我知道pyo是一个*.pyc文件,它是在优化(-O)开启时创建的。那么pyo应该被认为是一个独立的模块,不同于PY_COMPILED可能是PY_COMPILED_OPTIMIZED吗?

那么,为什么imp.get_suffixes()不能将pyo识别为单独的模块类型呢?

EN

回答 1

Stack Overflow用户

发布于 2020-06-19 14:51:36

我意识到这个问题很久以前就被问过了,但现在它确实是一个没有意义的问题。

从Python3.5开始,PEP488删除了pyo扩展,并开始对优化和未优化的字节码文件使用pyc。如果返回到3.4,您将看到在该版本中包含了pyo

代码语言:javascript
复制
SOURCE_SUFFIXES = ['.py']
DEBUG_BYTECODE_SUFFIXES = ['.pyc']
OPTIMIZED_BYTECODE_SUFFIXES = ['.pyo']

在3.5中,它更改为:

代码语言:javascript
复制
SOURCE_SUFFIXES = ['.py']
BYTECODE_SUFFIXES = ['.pyc']
DEBUG_BYTECODE_SUFFIXES = OPTIMIZED_BYTECODE_SUFFIXES = BYTECODE_SUFFIXES

PEP 488中的这些更改,以及PEP 3147在3.2中所做的更改,提供了更强大的方法来处理已编译的Python,其中包括:

在任何优化级别上,Python是编译字节码的通用扩展;

  • 是一个缓存子目录,用于防止

文件弄乱您的源area;

  • interpreter版本烘焙到pyc文件名中,这样您就可以将来自不同Python Python级别的文件也烘焙到pyc文件名中,这样就没有conflict.
  • changes到模块加载器来完成所有这些工作,从而确保生成或加载正确的pyc文件。

<代码>F220

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23673977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档