【发布时间】:2014-12-15 09:10:33
【问题描述】:
我正在尝试在从 six.moves.urllib_parse 导入 urlparse 的程序上使用 py2exe。这是程序:
# hello.py
from six.moves.urllib_parse import urlparse
print('hello world')
这是我的 setup.py:
from distutils.core import setup
import py2exe
setup(console=['hello.py'])
运行 hello.py 工作正常。当我使用 python setup.py py2exe 将 hello.py 编译为 exe 时,会生成一个 hello.exe 文件。但是,当我运行 hello.exe 时,我收到一条错误消息:
ImportError: No module named urlparse
我使用的是 Python 2.7。
使用 Python 3.4,我在运行 python setup.py py2exe 时收到错误消息 KeyError: 'six.moves'。
如何阻止这些错误的发生?
【问题讨论】:
-
我会尝试在 py2exe 'packages' 选项中添加 'six'
-
@Werner 这给出了错误:“TypeError: Six is not a package”
-
由于 py2exe 为特定的 python 版本创建了一个 exe,我决定替换我所有的六个实例。这样做为我解决了这个错误。 (但后来我遇到了其他导入错误)
-
糟糕,后来意识到这一点,我尝试将 'includes' 用于 'six',但也没有用。
-
@Humdinger,替换所有“六个”实例是什么意思?您是否升级到更新版本并解决了 py2exe 的问题?
标签: python py2exe six-python