【问题标题】:UnicodeDecodeError: 'charmap' codec| Error during installation of pip python-stdnum==1.8UnicodeDecodeError: 'charmap' 编解码器|安装 pip python-stdnum==1.8 时出错
【发布时间】:2021-04-25 10:56:18
【问题描述】:

我对编程还很陌生,所以请多多包涵。

当我为我正在使用的模块安装一些必需的软件包时,我无法安装 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.

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

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

【问题讨论】:

    标签: python windows pip package decode


    【解决方案1】:

    首先,可以使用在线安装,使用命令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,比较新。

    【讨论】:

    • 您好,八月,效果很好。唯一的问题是该模块仍然要求我提供 1.8 版本。我似乎没有发现这个版本是 whl 文件类型。 pypi.org 上 1.8 版的唯一文件类型是源文件类型。此文件类型的安装是否相同?
    • 您好,如果您使用源文件,请下载python-stdnum-1.8.tar.gz。然后解压缩文件。首先,使用python setup.py build,其次,使用python setup.py install
    • 安装命令的第二个选项似乎很顺利。但是,有一个警告试图运行所谓的“install_lib”但无法安装它。它给出了消息: install_lib: 'build\lib' 不存在——没有要安装的 python 模块。在我的 python 模块中,它仍然需要我 stdnum==1.8。
    • 看来问题是老版本造成的,不再维护了。这也解释了为什么 python-stdnum 1.8 没有 whl 文件。
    • @August 我找到了一个解决方案,以防有人需要使用 1.8 版。它与Windows有关
    【解决方案2】:

    我在 Windows 中安装 Odoo 依赖项时遇到了同样的问题,但经过一些调整后我找到了解决方案。

    这是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, 'README'), '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
    

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

    【讨论】:

    • 您好 Federico,我正在尝试您的解决方案,但我卡在第 3 步。我是否必须更改该脚本中的某些内容?当我尝试运行它时收到以下错误消息: FileNotFoundError: [Errno 2] No such file or directory: 'python-stdnum-1.8.tar_.gz'
    • @Nomad_King 检查更好的步骤 2,将 Zip 下载到一个文件夹中,将其从 python-stdnum-1.8.tar.gz 重命名为 python-stdnum-1.8.tar_.gz 您是否重命名了文件夹并在末尾添加了“_”?
    • 这只是为了避免名称冲突,然后在第 5 步中,如果您按照那里的步骤操作,您将输出正确的名称 python-stdnum-1.8.tar.gz应该是更改我的任何代码。
    【解决方案3】:

    如果是在 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

    最好的问候

    【讨论】:

    • 你是救命稻草,但在我的情况下,psutil 版本 5.6.7 不再需要。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-15
    • 2023-03-26
    • 1970-01-01
    • 2017-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多