首页 > 解决方案 > SyntaxError:文件 charset_normalizer/__init__.py 中的非 ASCII 字符 '\xd1' 它自己

问题描述

我只是简单地运行 python -c "import requests" 发现 charset_normalizer/ init .py 错误

[root@localhost Python-3.6.3]# python -c "import requests"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/local/lib/python3.6/site-packages/requests/__init__.py", line 48, in <module>
    from charset_normalizer import __version__ as charset_normalizer_version
  File "/usr/local/lib/python3.6/site-packages/charset_normalizer/__init__.py", line 11
SyntaxError: Non-ASCII character '\xd1' in file /usr/local/lib/python3.6/site-packages/charset_normalizer/__init__.py on line 12, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

它是由 pip 安装的。操作系统是centos 7。

[root@localhost Python-3.6.3]# pip show charset_normalizer
Name: charset-normalizer
Version: 2.0.3
Summary: The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet.
Home-page: https://github.com/ousret/charset_normalizer
Author: Ahmed TAHRI @Ousret
Author-email: ahmed.tahri@cloudnursery.dev
License: MIT
Location: /usr/local/lib/python3.6/site-packages
Requires:
Required-by: requests

查看文件,第 11,12 行

[root@localhost Python-3.6.3]# cat /usr/local/lib/python3.6/site-packages/charset_normalizer/__init__.py
"""
Charset-Normalizer
~~~~~~~~~~~~~~
The Real First Universal Charset Detector.
A library that helps you read text from an unknown charset encoding.
Motivated by chardet, This package is trying to resolve the issue by taking a new approach.
All IANA character set names for which the Python core library provides codecs are supported.

Basic usage:
   >>> from charset_normalizer import from_bytes
   >>> results = from_bytes('Bсеки човек има право на образование. Oбразованието трябва да бъде безплатно, поне що се отнася до началното и основното образование.'.encode('utf_8'))
   >>> "utf_8" in results
   True
   >>> best_result = results.best()
   >>> str(best_result)
   'Bсеки човек има право на образование. Oбразованието трябва да бъде безплатно, поне що се отнася до началното и основното образование.'

很奇怪,我该如何解决这个问题?

标签: python-3.x

解决方案


推荐阅读