嗨,我已经写了一个python 刮刀,在其中我正在导入请求和美丽汤模块。我用的是python2.7。我正在使用py2exe模块从我的Python中解析py2exe可执行文件(Py2exe)。为此,我创建了如下setup.py:
from distutils.core import setup
import py2exe
import requests
packages = [
'requests',
'requests.packages',
'requests.packages.chardet',
'requests.packages.urllib3',
'requests.packages.urllib3.packages',
'requests.packages.urllib3.contrib',
'requests.packages.urllib3.util',
'requests.packages.urllib3.packages.ssl_match_hostname',
]
setup(
console=['CompanyScraper-1.6.py']
)我通过运行命令"python setup.py py2exe“创建了setup.py文件。但是,当在窗口上运行.exe文件时,它会抛出以下错误:
Traceback (most recent call last):
File "CompanyScraper-1.6.py", line 13, in <module>
File "requests\__init__.pyc", line 58, in <module>
File "requests\utils.pyc", line 26, in <module>
File "requests\compat.pyc", line 7, in <module>
ImportError: cannot import name chardet我无法理解为什么这个chardet导入错误,尽管我已经在setup.py中包含了包
谢谢你调查我的问题。
发布于 2015-07-13 15:57:53
你可以从回溯中看到-
Traceback (most recent call last):
File "CompanyScraper-1.6.py", line 13, in <module>
File "requests\__init__.pyc", line 58, in <module>
File "requests\utils.pyc", line 26, in <module>
File "requests\compat.pyc", line 7, in <module>
ImportError: cannot import name chardet您有一个requests目录和一个__init__.py。这掩盖了库中的requests包,所以当您尝试从requests库导入chardet或任何类似的东西时,它会尝试在这个本地包中搜索它,而不是在库包中搜索它。
最好的解决方案是将目录和本地包从requests重命名为其他程序包,这样名称就不会与任何库包冲突。
https://stackoverflow.com/questions/31387799
复制相似问题