当前位置: 代码迷 >> 综合 >> 不修改代码页,解决 Python 报错 LookupError: unknown encoding: 65001
  详细解决方案

不修改代码页,解决 Python 报错 LookupError: unknown encoding: 65001

热度:69   发布时间:2023-12-28 19:51:13.0

解决方法

不要修改代码页!!!

1) 首先需要一个 Git 之类的 shell 环境,不过大家应该都安装了 Git。

2) 我用的是 Miniconda,所以要多一步:

  1. 打开 Git Bash,输入 source 空格。
  2. 找到 Miniconda 的安装目录下的 Scripts 目录(我的是 E:\Programs\Miniconda3\Scripts),找到 activate 文件(注意不是 activate.bat!)把它拖进 shell 里面。然后回车。

3) pip install win-unicode-console。(理论上这一步是关键,但是我没有用控制变量法,所以大家可以试试把这一步去掉,看看只用 1、2、4 这三步能不能安装成功)

4) conda install jupyter(根据需要,这里的 conda 可以换成 pipjupyter 换成大家需要安装的东西)

下面是我成功的情况截图,大家在使用的时候,用户名和安装路径会有所不同:

Activate Miniconda

探索过程

我使用的是 Windows 10 环境。今天在 Miniconda 里安装 jupyter,我按照正常手法点击开始菜单中的 Anaconda Prompt,输入 conda install jupyter。出现如下报错:

LinkError: post-link script failed for package defaults::ipykernel-4.8.2-py36_0
running your command again with `-v` will provide additional information
location of failed script: E:\Programs\Miniconda3\Scripts\.ipykernel-post-link.bat
==> script messages <==
<None>Fatal Python error: Py_Initialize: can't initialize sys standard streams
LookupError: unknown encoding: 65001Current thread 0x0000235c (most recent call first):

网上的解决方法大多是修改代码页,但是因为 65001 是 UTF-8 的代码页,而我本人有些程序是依赖 UTF-8 代码页的,就算这样改好了,其他程序就坏了!

后来在 https://github.com/docker/compose/issues/2775 看到了 @OptimalPandemic 的解决方法,于是我 conda install win-unicode-console。但是,安装这个的时候出现同样的问题。

突然我想起了 Git Bash,于是在 Git Bash 里安装 win-unicode-console,再安装 jupyter,成功!

  相关解决方案