使用pipenv创建虚拟环境时出现UnicodeDecodeError

Traceback (most recent call last):
  File "d:\develop\python376\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "d:\develop\python376\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "D:\develop\python376\Scripts\pipenv.exe\__main__.py", line 5, in 
  File "d:\develop\python376\lib\site-packages\pipenv\__init__.py", line 47, in 
    from .cli import cli
  File "d:\develop\python376\lib\site-packages\pipenv\cli\__init__.py", line 3, in 
    from .command import cli
  File "d:\develop\python376\lib\site-packages\pipenv\cli\command.py", line 7, in 
    import crayons
  File "d:\develop\python376\lib\site-packages\pipenv\patched\crayons.py", line 49, in 
    is_powershell = "powershell" in shellingham.detect_shell()[0]
  File "d:\develop\python376\lib\site-packages\pipenv\vendor\shellingham\__init__.py", line 22, in detect_shell
    shell = get_shell(pid, max_depth=max_depth)
  File "d:\develop\python376\lib\site-packages\pipenv\vendor\shellingham\nt.py", line 100, in get_shell
    processes = dict(_iter_process())
  File "d:\develop\python376\lib\site-packages\pipenv\vendor\shellingham\nt.py", line 78, in _iter_process
    info = {'executable': str(pe.szExeFile.decode('utf-8'))}
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xcc in position 0: invalid continuation byte

发现问题:通过UnicodeDecodeError发现这是一个编码问题,
定位问题:

\lib\site-packages\pipenv\vendor\shellingham\nt.py", line 78, in _iter_process
    info = {'executable': str(pe.szExeFile.decode('utf-8'))}

解决问题:修改\lib\site-packages\pipenv\vendor\shellingham\nt.py文件中的编码
将上面的 utf-8 改为 gbk 保存,重启cmd窗口

 info = {'executable': str(pe.szExeFile.decode('gbk'))}

你可能感兴趣的:(python)