Python ImportError:无法导入名称chardet
您好,我已经编写了一个pythonscraper,其中我正在导入请求和漂亮的soup模块。我正在使用python2.7。 我正在使用py2exe模块从Python脚本中装入Windows可执行文件(.exe)。 为此,我创建了setup.py,如下所示:Python ImportError:无法导入名称chardet,python,py2exe,Python,Py2exe,您好,我已经编写了一个pythonscraper,其中我正在导入请求和漂亮的soup模块。我正在使用python2.7。 我正在使用py2exe模块从Python脚本中装入Windows可执行文件(.exe)。 为此,我创建了setup.py,如下所示: from distutils.core import setup import py2exe import requests packages = [ 'requests', 'requests.packages',
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”创建了.exe文件。
但在Windows上运行.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
回溯(最近一次呼叫最后一次):
文件“CompanyScraper-1.6.py”,第13行,在
文件“requests\\ uuuu init\ uuuu.pyc”,第58行,在
文件“requests\utils.pyc”,第26行,在
文件“requests\compat.pyc”,第7行,在
ImportError:无法导入名称chardet
虽然我已经将包包括在setup.py中,但我无法理解为什么会出现这个chardet导入错误
感谢您调查我的问题。您可以从回溯中看到-
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
回溯(最近一次呼叫最后一次):
文件“CompanyScraper-1.6.py”,第13行,在
文件“requests\\ uuuu init\ uuuu.pyc”,第58行,在
文件“requests\utils.pyc”,第26行,在
文件“requests\compat.pyc”,第7行,在
ImportError:无法导入名称chardet
您有一个带有\uuu init\uuuu.py
的请求
目录。这会屏蔽库中的请求
包,因此当您尝试从请求
库中导入chardet
或任何类似内容时,它会尝试在此本地包中搜索,而不是在库中搜索
最好的解决方案是将目录和本地包从
请求
重命名为其他名称,这样名称就不会与任何库包冲突。感谢Anand的指导,它现在正在工作,我没有重命名LocalRequests包,而是将丢失的chardet文件夹复制到LocalRequests库中,它工作正常。。。。谢谢:-)