繁体   English   中英

py2exe无法从six.py导入

[英]py2exe cannot import from six.py

我正在尝试在从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不会检测到通过六个代理的模块,因此它们没有捆绑在一起。

您所要做的就是将相关模块(urlparse)添加到setup.py中的include中:

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

这样,该模块将被打包,当六个尝试导入它时,它将起作用。

py2exe最近发布了一个新版本,该版本修复了此问题:

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

使用此版本,我可以创建一个.exe并成功运行它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM