gpt4 book ai didi

python - 预生成的 .pyc 或 .pyo 文件的访问被拒绝错误

转载 作者:行者123 更新时间:2023-12-04 06:56:17 25 4
gpt4 key购买 nike

当我尝试通过双击或从命令提示符运行 .pyo 文件时,出现访问被拒绝错误。

假设我有 abc.py(保留 main 方法入口点),它导入文件 xyz.py 并导入 wx 等。

我生成 .pyo 文件。但是,一旦我尝试运行 abc.pyo,我就会收到拒绝访问错误。

我不明白为什么会这样?任何帮助将不胜感激。

(我使用 windows xp 作为操作系统)。
我正在从 .py 制作 .pyo,如下所示。

  • 我有一个 .bat 文件 CompileAllToPyo.bat 有
    python -O Compileall.py
  • Compileall.py 保留以下内容

  • 导入操作系统
    导入编译
    os.popen3(cmdLine, 'b')
    compileall.compile_dir('.', force=1)

    这是所有信息
    谢谢

    最佳答案

    你可以告诉系统你的hw.pyo文件是“可执行的”,例如(在 Linux、MacOSX 或任何其他 Unix-y 系统中)通过执行命令 chmod +w hw.pyo在终端外壳提示符下。例如,考虑以下简短的 shell session :

    $ cat >hw.py
    print('hello world')
    $ python2.5 -O -c'import hw'
    hello world
    $ ./hw.pyo
    bash: ./hw.pyo: Permission denied
    $ chmod +x hw.pyo
    $ ./hw.pyo
    hello world
    $

    默认情况下, .pyo (和 .pyc )文件未标记为可执行文件,因为它们主要用于导入,而不是直接执行(实际上,请注意,我们明确使用 Python import 语句来创建 创建 .pyo 文件!);但是,正如本例所示,将其中一个“作为主脚本可执行”非常容易。顺便说一句,另请注意:
    $ cat >hw.py
    print('hello world from ' + __name__)
    $ python2.5 -O -c'import hw'
    hello world from hw
    $ chmod +x hw.pyo
    $ ./hw.pyo
    hello world from __main__
    $
    __name__是什么告诉模块它是否是 import ed(所以第一个“hello world”说“来自 hw”)或作为主脚本运行(所以第二个说“来自 __main__”)。这就是设计为双向使用的模块通常以 if __name__ == '__main__': main() 结尾的原因。或类似的,其中 main是一个函数,通过这种方式,当模块作为主脚本运行时被调用(最好让所有实质性代码在一个函数中执行,而不是在模块的顶层执行)。

    关于python - 预生成的 .pyc 或 .pyo 文件的访问被拒绝错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2523961/

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