gpt4 book ai didi

python - 未找到 *.pyc 文件

转载 作者:行者123 更新时间:2023-11-28 22:00:31 25 4
gpt4 key购买 nike

我正在编写一个应用程序,它在 Python 3.3 下加载字节编译的 *.pyc 文件。我正在分发没有相应 *.py 文件的 *.pyc 文件,以(尝试)保护我的源代码。 (是的,如 here 所述,尝试通过字节编译 Python 来阻止反编译并不是最安全的选择,但如果我发现需要,我总是可以添加其他代码安全措施。)

但是,我发现 Python 不会在没有原始 *.py 文件的情况下加载 *.pyc 文件。 (根据 PEP 3147*.pyc 文件保存在 *.py 文件所在目录中名为 __pycache__ 的子目录中是。我用我自己的代码遵循这个约定。)

在我使用 Python 2.7 的项目的早期迭代中,我对 Python 源代码进行了字节编译,并将生成的 *.pyc 文件放入与 *.py< 相同的目录中 文件;效果很好。显然,Python 查找 __pycache__ 文件夹的方式存在问题。我究竟做错了什么? (是的,我已经适本地设置了 sys.path;否则当我将它作为调试措施插入时它不会找到 *.py 文件。)

最佳答案

来自 PEP 3147 :

If the py source file is missing, the pyc file inside __pycache__ will be ignored. This eliminates the problem of accidental stale pyc file imports.

For backward compatibility, Python will still support pyc-only distributions, however it will only do so when the pyc file lives in the directory where the py file would have been, i.e. not in the __pycache__ directory. pyc file outside of __pycache__ will only be imported if the py source file is missing.

因此,如果您想制作仅 pyc 的发行版,则必须将编译后的文件放在 .py 文件所在的位置。根据 PEP,compileall 可以选择创建这个精确的布局,因此您不必从 __pycache__ 中复制东西,所以请检查一下。

关于python - 未找到 *.pyc 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14799730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com