Python 3.9 和 Pycharm,HTMLParser AttributeError

Python 3.9 and Pycharm, HTMLParser AttributeError

当尝试在 Pycharm 中创建新的 python 3.9 Virtualenv 环境时,出现这样的错误

AttributeError: 'HTMLParser' object has no attribute 'unescape'


Traceback (most recent call last):
  File "/var/folders/6g/vnvmvlf51gv49m22rzj9zdtw0000gn/T/tmpifdsjw6lpycharm-management/setuptools-40.8.0/setup.py", line 11, in <module>
    import setuptools
  File "/private/var/folders/6g/vnvmvlf51gv49m22rzj9zdtw0000gn/T/tmpifdsjw6lpycharm-management/setuptools-40.8.0/setuptools/__init__.py", line 20, in <module>
    from setuptools.dist import Distribution, Feature
  File "/private/var/folders/6g/vnvmvlf51gv49m22rzj9zdtw0000gn/T/tmpifdsjw6lpycharm-management/setuptools-40.8.0/setuptools/dist.py", line 35, in <module>
    from setuptools.depends import Require
  File "/private/var/folders/6g/vnvmvlf51gv49m22rzj9zdtw0000gn/T/tmpifdsjw6lpycharm-management/setuptools-40.8.0/setuptools/depends.py", line 7, in <module>
    from .py33compat import Bytecode
  File "/private/var/folders/6g/vnvmvlf51gv49m22rzj9zdtw0000gn/T/tmpifdsjw6lpycharm-management/setuptools-40.8.0/setuptools/py33compat.py", line 55, in <module>
    unescape = getattr(html, 'unescape', html_parser.HTMLParser().unescape)
AttributeError: 'HTMLParser' object has no attribute 'unescape'

它能做什么?

基于 Matthias 评论

要修复此错误,我必须同时更新 pycharm (>=2020) 和 setuptools (>=41)。

希望这对某人有所帮助

你可以使用

import html
html.unescape

替换

import HTMLParser
HTMLParser.HTMLParser().unescape

升级到较新版本的 PyCharm/IntelliJ 应该可以解决问题,但是如果您必须使用带有 Python 3.9 的较旧版本的 IDE(<= 2019),那么您还可以通过在创建虚拟环境时选择 Inherit global site-packages 选项来解决此问题。但是,请记住,您的所有全局站点包都将因此包含在您的新环境中。

如果错误仍然存​​在,您可能需要像这样 install/upgrade 在您的全局站点包中安装工具、pip 和 distlib,

pip install --upgrade setuptools
pip install --upgrade pip
pip install --upgrade distlib

其中 pip 可以根据需要替换为 pip3pip3.9 等,然后尝试使用 Inherit 全局站点再次创建虚拟环境-packages 选项已选择。