我已经实现了一个名为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。
答案 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>
...