解决方法
不要修改代码页!!!
1) 首先需要一个 Git 之类的 shell 环境,不过大家应该都安装了 Git。
2) 我用的是 Miniconda,所以要多一步:
- 打开 Git Bash,输入
source
空格。- 找到 Miniconda 的安装目录下的
Scripts
目录(我的是E:\Programs\Miniconda3\Scripts
),找到activate
文件(注意不是activate.bat
!)把它拖进 shell 里面。然后回车。
3) pip install win-unicode-console
。(理论上这一步是关键,但是我没有用控制变量法,所以大家可以试试把这一步去掉,看看只用 1、2、4 这三步能不能安装成功)
4) conda install jupyter
(根据需要,这里的 conda
可以换成 pip
;jupyter
换成大家需要安装的东西)
下面是我成功的情况截图,大家在使用的时候,用户名和安装路径会有所不同:
探索过程
我使用的是 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
,成功!