【python】gitbash中执行python后出现【LookupError: unknown encoding: cp65001】

一、先说结论

最终的原因是:python2.7下载错误 ,电脑是64位,我下载成32位,导致后面一系列问题.......
    python-2.7.18.amd64.msi (重新下载这个包安装后解决问题)
    python-2.7.18.msi  (错误下载安装了这个包,导致了后面的问题)

 

二、问题如下:

在gitbash中执行repo,由于项目里有很多python脚本,于是执行python文件时出现如下错误:

 

三、解决过程

于是,Bing搜索了LookupError: unknown encoding: cp65001,也出现很多结果,但始终不能解决根本问题,只是解决了表面问题。

这里说的表面问题是:在gitbash中输入python后出现LookupError但windows的cmd不会:也就是说在gitbash中,执行python的编码总是出现问题

然而windows的命令行,却可以正常执行python脚本

 

Bing查了半天,一直没找到和我一摸一样的... 大家的问题是在windows命令行中出现LookupError,然后用下面的方法解决了问题。

而我用下面方法,只有方法3萌购解决表面问题(gitbash中的LookupError没有了)

//方法1  没啥用
set PYTHONIOENCODING=utf-8


//方法2  没啥用 
需要将编码(UTF-8)修改为 简体中文(GBK)

在CMD窗口执行 chcp 936


//方法3  有用!
//gitbash 执行 : 
alias python='winpty python.exe'  //非永久 
//参考链接:https://blog.csdn.net/weixin_43790276/article/details/101134900 

//永久
	cd ~
	vim .bashrc
	alias python='winpty python.exe'
//方法3后,gitbash中执行python进入交互模式不再出现LookupError: unknown encoding: cp65001

但根本问题还是会出现....  郁闷:

 

四、最终解决

突然灵光一现,想到了,好像是下载python是犹豫了一下,会不会下载错误???

 

python2.7后面没有(64-bit),说明安装python2.7安装了32位的版本!!

草!

重新安装:64位还需要手动添加环境变量!

最终问题成功解决!

------------------

等等,这里的解决是:repo init的错误消失了,但是!后面repo sync 拉取代码的时候还是出现这个问题。

 

哇。我尽力重新安装python2.7 python3.9等等,都没有解决这个问题。折磨了一天时间。。。。

 

最终确定问题:是gitbash的bug! 然后重新下载安装了gitbash,安装时候的选项仔细读了一下,我肯定是安装git时候的一些选选个选错了,导致gitbash中不能运行python2中的库中的脚本。

我应该之前安装的git最后选择了这一项,这一项的说明:【it still has bugs】,感觉就是我的那个bug!明明gitbash中可以运行python,但是执行库中的代码就会报错,我真的是醉了。

 

这个问题。。。前前后后折磨我两天!啊!

博客写的有点乱,不知遇到同样问题的小伙伴能不能看明白。。。

 

 

 


版权声明:本文为zDavid_2018原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。