使用py2exe时出现相对导入错误

15

我试图为一个简单的Python脚本生成可执行文件。我的setup.py代码如下:

from distutils.core import setup
import py2exe
setup(console=["script.py"])

然而,我遇到了屏幕截图中显示的错误。有什么方法可以尝试修复吗?我正在使用Windows 10。

enter image description here


需要更多信息,例如您的项目文件结构。但是请尝试将py2exe路径添加到您的PYTHONPATH中? - BAE
1个回答

6

看起来你的 mf3.py 文件中正在进行 超出顶层的导入操作

假设你的项目结构如下:

folder/
main.py
mod/
    __init__.py
    components/
        __init__.py
        expander.py
        language_id.py
    utilities/
        __init__.py
        functions.py

首先确保

main.py refers to the subpackages as:

from mod.components.expander import *
from mod.utilities.functions import *

expander.py and language_id.py have access to functions.py with:

from ..utilities.functions import *

为你的setup.py添加选项

你也可以使用更多py2exe选项,以便导入项目所需的所有模块和包。例如:

# setup.py
from distutils.core import setup
import py2exe
setup(console=["script.py"],
      options={
              "py2exe":{
                    "optimize": 2,
                    "includes": ["mf1.py", "mf2.py", "mf3.py"], # List of all the modules you want to import
                    "packages": ["package1"] # List of the package you want to make sure that will be imported
               }
       }
    )

以这种方式,您可以强制导入您的项目中缺失的脚本。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接