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
可以根据需要替换为 pip3
、pip3.9
等,然后尝试使用 Inherit 全局站点再次创建虚拟环境-packages 选项已选择。
当尝试在 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
可以根据需要替换为 pip3
、pip3.9
等,然后尝试使用 Inherit 全局站点再次创建虚拟环境-packages 选项已选择。