UnicodeDecodeError:“charmap”编解码器无法解码位置X中的字节0x9d:字符映射到<undefined>

2024-06-13 15:22:54 发布

您现在位置:Python中文网/ 问答频道 /正文

当我试图用pip安装StringGenerator时,系统会提示我以下错误:

C:\Users\Administrator> pip install StringGenerator

Collecting StringGenerator 
Using cached StringGenerator-0.3.0.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Users\ADMINI~1\AppData\Local\Temp\2\pip-build-mdvrj2cf\StringGenerator\setup.py", line 7, in <module>
    long_description = file.read()
  File "c:\users\administrator\appdata\local\programs\python\python36-32\lib\encodings\cp1252.py", line 23, in decode
    return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 1264: character maps to <undefined>

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in C:\Users\ADMINI~1\AppData\Local\Temp\2\pip-build-mdvrj2cf\StringGenerator\

Tags: pipinpyinfoegglocalsetupline
2条回答

该问题是在读取README.txt时在安装过程中引起的。在Windows中,默认的编码是cp1252,但是readme文件很可能是用UTF8编码的。

错误消息告诉您,cp1252编解码器无法解码字节为0x9D的字符。当我浏览自述文件时,发现此字符:(也称为:“右双引号”),其字节为0xE2 0x800x9D,其中包括有问题的字节。

你能做的是:

  1. 下载包here
  2. 解压缩包
  3. 打开setup.py
  4. 更改以下内容:

发件人:

with open('README.txt') as file:
    long_description = file.read()

更改为:

with open('README.txt', encoding="utf8") as file:
    long_description = file.read()

这将以正确的编码打开文件。

或者你可以同时删除这两条线,也可以删除long_description=long_description,中第18行的setup()

  1. 在控制台中,运行python setup.py install
  2. 你完了!

由于setup.py脚本中没有实际的安装程序,您可以直接从GitHub中克隆源文件夹,因此包应该仍然正常工作。

转到https://pypi.python.org/pypi/StringGenerator/0.3.0并下载最新版本(在本例中是源代码),解压缩.gz文件,然后解压缩.tar文件。

下一步进入StringGenerator-0.2.0文件夹,打开终端并运行:

python setup.py build
python setup.py install 

或从PowerShell运行:

python ./setup.py build
python ./setup.py install 

相关问题 更多 >