2016-01-06 90 views
14

我试图为一个简单的Python脚本生成一个可执行文件。我的setup.py代码如下所示:py2exe相对导入错误

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

但是,我收到了屏幕截图中显示的错误。有什么我可以尝试解决这个问题吗?我使用的是Windows 10

enter image description here

+0

失踪脚本的进口需要更多的信息,例如,您的项目文件结构。但尝试添加py2exe路径到您的PYTHONPATH? – BAE

回答

6

看来,在你的mf3.pyimporting beyond the top level

让我们假设你的项目结构如下:

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

首先确保

main.py指子包为:

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

expander.py和language_id.py有机会与以functions.py:

from ..utilities.functions import *

选项添加到您的setup.py

您还可以使用更py2exe options为了你正在导入您的项目所需的所有模块和软件包。例如。

# 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 
       } 
     } 
    ) 

这样就可以迫使你的项目