今天重装了win10系统,需要重搭开发环境。
但在重装django包的时候出现了安装错误:UnicodeDecodeError: ‘ascii’ codec can’t decode…
怀疑是重装系统时把用户名设为中文名的缘故。于是在D:\python\Lib\下找到ntpath.py文件 ,疯狂打印,在下面打印路径的时候发现并确认了是这个原因
# Join two (or more) paths.
def join(path, *paths):
"""Join two or more pathname components, inserting "\\" as needed."""
result_drive, result_path = splitdrive(path)
for p in paths:
p_drive, p_path = splitdrive(p)
if p_path and p_path[0] in '\\/':
# Second path is absolute
if p_drive or not result_drive:
result_drive = p_drive
result_path = p_path
continue
elif p_drive and p_drive != result_drive:
if p_drive.lower() != result_drive.lower():
# Different drives => ignore the first path entirely
result_drive = p_drive
result_path = p_path
continue
# Same drive in different case
result_drive = p_drive
# Second path is relative to the first
if result_path and result_path[-1] not in '\\/':
result_path = result_path + '\\'
result_path = result_path + p_path
print result_path # 把路径打印出来
## add separator between UNC and non-absolute path
if (result_path and result_path[0] not in '\\/' and
result_drive and result_drive[-1:] != ':'):
return result_drive + sep + result_path
return result_drive + result_path
解决:
方法一:在ntpath.py文件开头添加以下代码即可
import sys
defaultencoding = 'utf-8'
if sys.getdefaultencoding() != defaultencoding:
reload(sys)
sys.setdefaultencoding(defaultencoding)
方法二:修改用户名为英文或切换用户