py2exe ImportError: no module named <package I have impemented>

半城伤御伤魂 提交于 2019-12-07 11:45:27

问题


I have implemented a package names myUtils, it consists of folder 'myUtils', file 'init.py' and a number of *.py files with names != 'myUtils'. This package is included in myOtherProject.py and can be found/used when I run them from Eclipse.

However, when I run py2exe on myOtherProject.py, resulting exe cannot find this module(error message "ImportError: no module named myUtils"). Trimmed version of my 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_)

How could I fix this? I am using Python 2.7 on WinXP.


回答1:


put your sys.path.append() line BEFORE the import statement. Better yet, modify your PYTHONPATH (i'm not sure how to do this on windows, but i'm sure Google can tell you how)




回答2:


I did not define PYTHONPATH properly; there were spaces after semicolons. Instead of

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

it needed to be

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

For packages that are defined using init.py (package MyPackage corresponds to a folder MyPackage, that contains init.py and some other files, without MyPackage.py), path that I needed to add to PYTHONPATH was not

<path_to_MyPackage>\MyPackage 

but just

<path_to_MyPackage>

...



来源:https://stackoverflow.com/questions/13237521/py2exe-importerror-no-module-named-package-i-have-impemented

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!