我有一个包,我试图使用py2exe打包Windows。我可以运行安装脚本并生成可执行文件,但是当我运行它时,我得到一个错误,我的包中的某个模块无法导入。错误说:ImportError: No module named 'some_functions'
这是项目的结构:
project/
setup.py
icon.ico
my_module/
__init__.py
some_functions.py
__main__.py
这是我的setup.py
from distutils.core import setup
import py2exe
setup(
version='1.1.1',
console=[{
'script': 'my_module/__main__.py',
'icon_resources': [(1, 'icon.ico')],
'dest_base': 'module'
}],
options={
'py2exe': {
'includes': [
'requests'
],
'bundle_files': 1
}
}
)
这是我的__main__.py
from some_functions import important
print(important(10, 20))
some_functions.py
def important(x, y):
return x * y
我做错了什么?
答案 0 :(得分:0)
自问这个问题以来已经有很长一段时间,但我最近遇到了同样的问题而且我碰巧找到了适合我的解决方案。
找不到该模块,因为setup.py
文件位于父目录中。要解决此问题,我只需在setup(...)
文件中调用setup.py
之前将模块目录添加到路径中:
sys.path.insert(0, 'my_module')