py2exe ImportError:没有名为<package i =“”has =“”impemented =“”> </package>的模块

时间:2012-11-05 17:47:53

标签: python eclipse py2exe distutils

我已经实现了一个名为myUtils的软件包,它包含'myUtils'文件夹,文件' init .py'以及一些名称为!='myUtils'的* .py文件。这个包包含在myOtherProject.py中,当我从Eclipse运行它时可以找到/使用它。

但是,当我在myOtherProject.py上运行py2exe时,生成的exe无法找到此模块(错误消息“ImportError:no module named myUtils”)。修剪版本的setup.exe:

from distutils.core import setup
import py2exe, sys
sys.path.append(pathTo_myUtils)
import myUtils # this line works fine even if I comment out sys.path.append(...)
data_files_ = (('.', ["C:\\Python27\\DLLs\\MSVCP90.dll", 
                      "C:\\Python27\\lib\\site-packages\\Pythonwin\\mfc90.dll"]))
setup(windows=['myOtherProject.py'], options={'py2exe': {'excludes': ['tcl'], 'includes': ['myUtils'], 'dll_excludes': ['tk85.dll',  'tcl85.dll'] }}, data_files=data_files_)

我该如何解决这个问题?我在WinXP上使用Python 2.7。

2 个答案:

答案 0 :(得分:2)

sys.path.append()声明之前放置import行。更好的是,修改您的PYTHONPATH(我不知道如何在Windows上执行此操作,但我确信Google可以告诉您如何)

答案 1 :(得分:2)

我没有正确定义PYTHONPATH;用分号后有空格。而不是

c:\aa\; c:\bb\; c:\cc\

它必须是

c:\aa;c:\bb;c:\cc

对于使用 init .py定义的软件包(软件包MyPackage对应于文件夹MyPackage,其中包含 init .py和其他一些文件,不含MyPackage.py) ,我需要添加到PYTHONPATH的路径不是

<path_to_MyPackage>\MyPackage 

但只是

<path_to_MyPackage>

...