【发布时间】:2012-03-28 18:02:32
【问题描述】:
我似乎不知道如何将已编译的 .pyc 模块导入到我的代码中,以便可以在我的主脚本中使用它。这甚至可能吗?
【问题讨论】:
-
仅供参考。 PyDev 在导入 pyc 文件时存在错误。 stackoverflow.com/questions/13967342/pydev-and-pyc-files
标签: python import module compiled
我似乎不知道如何将已编译的 .pyc 模块导入到我的代码中,以便可以在我的主脚本中使用它。这甚至可能吗?
【问题讨论】:
标签: python import module compiled
如果有 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”。
在 PEP 3147 中有一个很好的 flow chart 链接自 documentation。
【讨论】:
使用不带扩展的导入。 Python 会查看文件是否已更改,否则将使用之前创建的 pyc 文件。
但请注意,如果您真的想要更高的性能,我建议您使用PyPy,这比标准的 CPython 实现要快得多。 (但请注意,它仍然是 Python 2)
【讨论】:
【讨论】:
import filename.py 不起作用。您没有在 import 语句中指定 .py 后缀。
help("import")
是的,但请注意,请确保使用“-O”选项启动 python!以我个人的经验,如果您只有 .pyc 或 .pyo 文件,则在没有标志的情况下运行“python.exe”并尝试导入将失败,但是运行 python.exe -O 然后尝试正常导入应该可以.
【讨论】:
导入时使用pyc文件名,python会自动加载。
【讨论】: