在整个包上使用Py2exe

时间:2014-08-11 13:51:44

标签: python windows package py2exe

我有一个包,我试图使用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

我做错了什么?

1 个答案:

答案 0 :(得分:0)

自问这个问题以来已经有很长一段时间,但我最近遇到了同样的问题而且我碰巧找到了适合我的解决方案。

找不到该模块,因为setup.py文件位于父目录中。要解决此问题,我只需在setup(...)文件中调用setup.py之前将模块目录添加到路径中:

sys.path.insert(0, 'my_module')