Python不检测.pyc文件

Kir*_*M N 2 python import pyc

我正在使用Python 3.2(用于构建和执行),这是我的问题.

我打算使用以下设置发送我的python应用程序:

有一个主脚本(比方说Main.py),就是使用编译过的模块Module1.pyc.确切地说,目录结构是:

.\Main.py
.\__pycache__\Module1.cpython-32.pyc
Run Code Online (Sandbox Code Playgroud)

当我使用python解释器运行主脚本时,它找不到具有以下错误的模块:

Traceback (most recent call last):
  File "Main.py", line 10, in <module>
    import Module1
ImportError: No module named Module1
Run Code Online (Sandbox Code Playgroud)

请注意,我已将当前目录添加到PYTHONPATH环境变量中,并且是其中的一部分sys.path.此外,__pycache__还添加了内部目录,并在其中可见sys.path.

不确定为什么找不到Module1.我猜,这可能是因为文件名不同 - Module1.cpython-32.pyc?但是,那就是Python 3.2解释器生成它的方式.

gec*_*cco 10

看看PEP-3147.它们描述了python-lookup机制的工作原理.

在此输入图像描述

因此,在您的具体情况下:将文件Module1.pyc直接放在根文件夹中.

  • 虽然这只是解决了问题,但还需要重命名 pyc 文件的步骤。有没有办法控制创建的 pyc 文件名? (3认同)

Kir*_*M N 5

如下所述,通过两个步骤解决了该问题: 步骤 1:将 Module.cpython-32.pyc 文件从 .__pycache__ 目录复制到 .\ 步骤 2:将文件重命名为 Module.pyc

PS:感谢 gecco 分享细节。

  • @gecco,有两个部分可以解决这个问题,我在上面已经提到过。除非执行这两个步骤,否则它不起作用。您共享的流程图属于第 1 步。因此,不确定为什么应否决此操作。因为,我刚刚尝试过,发现需要两个步骤才能使其正常工作 (2认同)