4

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

但是,当我在 myOtherProject.py 上运行 py2exe 时,生成的 exe 找不到此模块(错误消息“ImportError:没有名为 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。

4

2 回答 2

2

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

于 2012-11-05T18:01:12.527 回答
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>

...

于 2012-11-15T17:14:02.597 回答