函数imp.get_suffixes()返回描述特定类型模块的元组列表。
我知道pyo是一个*.pyc文件,它是在优化(-O)开启时创建的。那么pyo应该被认为是一个独立的模块,不同于PY_COMPILED可能是PY_COMPILED_OPTIMIZED吗?
那么,为什么imp.get_suffixes()不能将pyo识别为单独的模块类型呢?
发布于 2020-06-19 14:51:36
我意识到这个问题很久以前就被问过了,但现在它确实是一个没有意义的问题。
从Python3.5开始,PEP488删除了pyo扩展,并开始对优化和未优化的字节码文件使用pyc。如果返回到3.4,您将看到在该版本中包含了pyo:
SOURCE_SUFFIXES = ['.py']
DEBUG_BYTECODE_SUFFIXES = ['.pyc']
OPTIMIZED_BYTECODE_SUFFIXES = ['.pyo']在3.5中,它更改为:
SOURCE_SUFFIXES = ['.py']
BYTECODE_SUFFIXES = ['.pyc']
DEBUG_BYTECODE_SUFFIXES = OPTIMIZED_BYTECODE_SUFFIXES = BYTECODE_SUFFIXESPEP 488中的这些更改,以及PEP 3147在3.2中所做的更改,提供了更强大的方法来处理已编译的Python,其中包括:
在任何优化级别上,Python是编译字节码的通用扩展;
文件弄乱您的源area;
pyc文件名中,这样您就可以将来自不同Python Python级别的文件也烘焙到pyc文件名中,这样就没有conflict.pyc文件。<代码>F220
https://stackoverflow.com/questions/23673977
复制相似问题