我似乎不知道如何将已编译的 .pyc 模块导入到我的代码中,以便我可以在我的主脚本中使用它。这甚至可能吗?
6 回答
如果存在 foo.pyc,无论 foo.py 是否存在,import foo 都会自动使用 foo.pyc
(如果 foo.py 较新,将使用它)
简而言之,要仅导入 Python 编译文件(例如module.pyc),只需将其放在源(例如module.py)所在的同一目录中,并确保没有相应的源文件(module.py在我们的例子中)那里。然后通常import module
将无缝工作。
如果与编译文件在同一目录下有源文件,Python 将使用该目录中的编译文件,__pycache__
如果不存在则从源重新编译。
如果在同一目录中没有放置“.pyc”就删除了源文件,即使该__pycache__
目录中存在编译文件,导入也会失败。另请注意,下的文件__pycache__
遵循不同的命名约定。如果你复制它们,请确保它们被重命名,以便它与源文件具有相同的名称,除了扩展名必须是“pyc”而不是“py”。
使用不带扩展名的导入。Python 将查看文件是否已更改,如果没有更改,它将使用先前创建的 pyc 文件。
但请注意,如果您真的想要更高的性能,我建议您使用PyPy,它比标准的 CPython 实现要快得多。(但请注意,它仍然是 Python 2)
是的,但请注意,确保使用“-O”选项启动 python!以我个人的经验,如果您只有 .pyc 或 .pyo 文件,则在没有标志的情况下运行“python.exe”并尝试导入将失败,但是运行 python.exe -O 然后尝试正常导入应该可以.
导入时使用pyc文件名,python会自动加载。