函数imp.get_suffixes()返回描述特定类型模块的元组列表。
我理解pyo
是在优化(-O)打开时创建的* .pyc文件。那么pyo
应该被视为一个与PY_COMPILED不同的单独模块可能是PY_COMPILED_OPTIMIZED吗?
那么,为什么imp.get_suffixes()不会将pyo
视为单独的模块类型?
答案 0 :(得分:0)
我意识到这个问题是很久以前提出的,但现在确实是有争议的。
从Python 3.5开始,PEP 488删除了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_SUFFIXES
PEP 488中的这些更改以及3.2中进行的PEP 3147更改提供了处理已编译Python的更强大的方法,其中包括:
pyc
文件使您的源区域混乱; pyc
文件名中,以便您可以使用来自不同Python版本的文件; pyc
文件名中,因此没有冲突。pyc
文件。