1

我正在尝试在urlparsesix.moves.urllib_parse. 这是程序:

# 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 工作正常。当我使用 将 hello.py 编译为 exepython setup.py py2exe时,会生成一个hello.exe文件。但是,当我运行时,hello.exe我收到一条错误消息:

ImportError: No module named urlparse

我正在使用 Python 2.7。

使用 Python 3.4,KeyError: 'six.moves'运行时出现错误提示python setup.py py2exe

如何阻止这些错误的发生?

4

2 回答 2

1

问题只是 py2exe 没有检测到通过六个代理的模块,因此它们没有被捆绑。

您所要做的就是将有问题的模块(urlparse)添加到您的 setup.py 中:

  options={
      "py2exe": {
      ...
      "includes": ["urlparse"],
      ...

这样模块将被打包,当六个尝试导入它时,它就会工作。

于 2015-04-28T21:25:56.360 回答
0

py2exe最近发布了一个新版本来解决这个问题:

Changes in version 0.9.2.2:
- Added support for six, cffi, pycparser, openssl.

使用这个版本,我能够创建一个 .exe 并成功运行它。

于 2014-10-25T01:33:49.440 回答