Python 运行报错NameError出现原因,怎么解决

Python015

Python 运行报错NameError出现原因,怎么解决,第1张

python程序,报错NameError: name XX is not defined 是没有声明造成的,需要在文件的前两行进行声明编码,声明方法为:

1、写一个python文件,文件中有中文字符,且未声明编码。

2、当程序文件中,存在中文字符时候,文件未声明编码格式就会出现报错信息:  File "encode.py", line 1SyntaxError:

Non-ASCII character '\xe7' in file encode.py on line 1, but no encoding

declaredsee //..python.../dev/peps/pep-0263/ for details for details。

3、根据错误提示,在python官网得到如下帮助信息。

4、所以,按照帮助文档的提示以及例子,在Python文件中加入一个编码声明。

5、保存之后,再次运行,运行成功。

在使用pip命令安装selenium和appium-python-client时,总报错:Unicode Decode Error ascii codec can't decode byte 0xd0 in position 7: ordinal not in range(128)……上百度搜了很久,终于得到解决,现在将所有看到的方法都总结一下。

报错原因:windows的cmd环境默认为gbk编码,pip默认用utf8编码。而在Linux和Mac中,terminal环境默认的是utf8编码,所以不会报错。

方法1: 在你的python目录: Python27\Lib\site-packages下,新 建一个 sitecustomize.py 文件,

内容为:import sys                      sys.setdefaultencoding('gbk')  

保存,然后重新运行安装命令,即可成功安装。

方法2: 更改Python27\Lib目录下的 mimetypes.py 文件,找到大概256行(你可以用Notepad++的搜索功能)的 default_encoding = sys.getdefaultencoding(),在这行前面添加三行内容:ifsys.getdefaultencoding() !='gbk':                          reload(sys)                    sys.setdefaultencoding('gbk')注意格式并保存,重新运行cmd命令。

但是我使用这种方法失败了,你们可以尝试一下~

方法3: 在python/lib/site.py文件中加入(在报错的页面添加):

import sys

reload(sys)

sys.setdefaultencoding('gbk')(括号里面的内容填写所需的编码格式)

这种办法我没有尝试,是在网上看到的,也一并整理了。

如果后面两种方法有效的话,请一定记得与我分享!