UnicodeDecodeError: 'charmap' 编解码器| pip python-stdnum==1.8 安装时出错

问题描述

我对编程还很陌生,所以请耐心等待。

当我为正在使用的模块安装一些必需的软件包时,我无法安装 python-stdnum==1.8

我收到以下错误消息:

File "C:\Users\59996\AppData\Local\Programs\Python\python37\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 967: character maps to <undefined>
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

我能做些什么来仍然能够安装软件包吗?

任何帮助将不胜感激。提前致谢!

解决方法

如果是在 Windows 上安装 Odoo 14,问题出在“requirements.txt”

将“python-stdnum==1.8”更改为“python-stdnum==1.8.1”(即使Federico Baù的回答在起作用)

然后会出现另一个问题,因此将“psutil==5.6.6”更改为“psutil==5.6.7” 仍在“requirements.txt”中

来源:https://github.com/odoo/odoo/issues/62919

最好的问候

,

我在 Windows 中安装 Odoo Dependencies 时遇到了同样的问题,但经过一番努力后我找到了解决方案。

这是 stdnum 1.8 --> stdnum 1.8 installation fails on windows 的旧错误。

解决方案

  1. 前往arthurdejong.org/python-stdnum/并找到python-stdnum-1.8.tar.gz

  2. 将 Zip 下载到文件夹中,将其从 python-stdnum-1.8.tar.gz 重命名为 python-stdnum-1.8.tar_.gz(为了避免名称冲突)。

  3. 然后创建以下 Python 脚本(在同一目录中):


import tarfile

def open_tarfile_function(tarfile_file_name):
    open_tarfile=tarfile.open("python-stdnum-1.8.tar_.gz")
    open_tarfile.extractall(path='stdnum')
    open_tarfile.close()

open_tarfile_function('data.tgz')

  1. 它将创建一个名为 stdnum 的文件夹,打开它,然后打开 setup.py,转到第 37 行并从这里修改:

with open(os.path.join(base_dir,'README'),'r') as fp:
    long_description = fp.read()

为此:

with open(os.path.join(base_dir,'rb') as fp:
    long_description = fp.read().decode('utf-8')

保存。

  1. 现在在同一目录中运行此代码:

import tarfile
import os.path

def make_tarfile(output_filename,source_dir):
    with tarfile.open(output_filename,"w:gz") as tar:
        tar.add(source_dir,arcname=os.path.sep)

output_filename = "python-stdnum-1.8.tar.gz"
source_dir = "stdnum\python-stdnum-1.8"

make_tarfile(output_filename,source_dir)

  1. 这将创建文件 python-stdnum-1.8.tar.gz 复制绝对路径

  2. 转到您的 Python 环境并运行:


pip install D:\Odoo\Odoo_instance_one\python-stdnum-1.8.tar.gz

显然用您的绝对路径替换绝对路径。

,

首先,您可以使用在线安装,使用命令pip install python-stdnum==1.8

其次,可以从here下载python-stdnum的whl文件。

例如下载到 F:/file

然后使用命令 pip install F:/file/python_stdnum-1.15-py2.py3-none-any.whl 进行安装。

python-stdnum 1.8 是之前的版本,没有对应的whl文件了。

一般来说,之前的版本对应的python版本比较低,所以如果你用pip install python-stdnum==1.8来安装,可能会有问题,因为你现在的python是3.7,比较新。