我的初始環(huán)境:
- win10 x64系統(tǒng)
- 已安裝基于python3.6版本的anaconda
- 已在anaconda中安裝py27的虛擬環(huán)境(不會安裝可以看這里)
- 已有的jupyter notebook的kernel是基于python3.6版本的
在之前的文章中海蔽,我是將anaconda的虛擬環(huán)境py27安裝在指定路徑(G:\Anaconda\envs\py27)笋妥,因此在安裝ipykernel時(shí)蚓再,也需要指定安裝雪猪。 安裝命令為 “conda install --prefix=G:\Anaconda\envs\py27 ipykernel”谅畅,如下:
接下來會有一個(gè)選項(xiàng)胚迫,選y就行贾铝。
接著進(jìn)入py27虛擬環(huán)境中,輸入python -m ipykernel install --user
TraceBack了始绍,瞳购,,亏推,
哇我他媽賊難受Q!
老子為什么要給計(jì)算機(jī)起中文名吞杭?U到健?Q抗贰绢掰?!?5尉ⅰ攻晒?!
現(xiàn)在是2019年8月31日下午15:33:06班挖,經(jīng)過一晚上和一上午的嘗試鲁捏,我他媽,看源碼聪姿,調(diào)試碴萧,查資料,看官方文檔都試過了末购,終于找到了解決方案。
期間的錯(cuò)誤案例我就不說了虎谢,直接給出解決方案盟榴。。婴噩。擎场。
居然是,改源碼几莽。
奇了怪了迅办,我Python3在輸入python -m ipykernel install --user命令的時(shí)候就沒事,輪到Python2就不行章蚣,看來py2.x對中文的支持是真的差站欺,pip一些包的時(shí)候也是經(jīng)常報(bào)錯(cuò),原因就是它他媽默認(rèn)ASCII進(jìn)行解碼纤垂,而不是utf-8矾策!
仔細(xì)分析我的報(bào)錯(cuò)文件,一個(gè)個(gè)找峭沦,最終在最后一個(gè)地方贾虽。
envs\py27\lib\site-packages\traitlets\traitlets.py這個(gè)文件下
進(jìn)去找第2053行。吼鱼。蓬豁。
class Unicode(TraitType):
"""A trait for unicode strings."""
default_value = u''
info_text = 'a unicode string'
def validate(self, obj, value):
if isinstance(value, six.text_type):
return value
if isinstance(value, bytes):
try:
return value.decode('ascii', 'strict')
except UnicodeDecodeError:
msg = "Could not decode {!r} for unicode trait '{}' of {} instance."
raise TraitError(msg.format(value, self.name, class_of(obj)))
self.error(obj, value)
這個(gè)類里,我把ascii改為utf-8菇肃,失敗
改成gbk地粪,成功。
雖然報(bào)了warning巷送,but驶忌,,it works2333
最簡單的一個(gè)測試方法:
2333!
我贏(Yíííííng)了付魔,寧呢聊品?!
開始搞《Python核心編程》几苍!
2019年9月3日更新:
Python2.7版本的kernel只能在py27的env環(huán)境下打開翻屈。
Python3版本(base)的kernel能在base和py27的env環(huán)境下打開。