虛擬環境指定python2.7版本報錯解決
虛擬環境指定python版本報錯:
Exception:
Traceback (most recent call last):
File "d:\python\python36_64\lib\site-packages\virtualenv_support\pip-9.0.3-py2.py3-none-any.whl\pip\basecommand.py", line 215, in main
status = self.run(options, args)
File "d:\python\python36_64\lib\site-packages\virtualenv_support\pip-9.0.3-py2.py3-none-any.whl\pip\commands\install.py", line 324, in run
requirement_set.prepare_files(finder)
File "d:\python\python36_64\lib\site-packages\virtualenv_support\pip-9.0.3-py2.py3-none-any.whl\pip\req\req_set.py", line 380, in prepare_files
ignore_dependencies=self.ignore_dependencies))
File "d:\python\python36_64\lib\site-packages\virtualenv_support\pip-9.0.3-py2.py3-none-any.whl\pip\req\req_set.py", line 554, in _prepare_file
require_hashes
File "d:\python\python36_64\lib\site-packages\virtualenv_support\pip-9.0.3-py2.py3-none-any.whl\pip\req\req_install.py", line 278, in populate_link
self.link = finder.find_requirement(self, upgrade)
File "d:\python\python36_64\lib\site-packages\virtualenv_support\pip-9.0.3-py2.py3-none-any.whl\pip\index.py", line 465, in find_requirement
all_candidates = self.find_all_candidates(req.name)
File "d:\python\python36_64\lib\site-packages\virtualenv_support\pip-9.0.3-py2.py3-none-any.whl\pip\index.py", line 386, in find_all_candidates
self.find_links, expand_dir=True)
File "d:\python\python36_64\lib\site-packages\virtualenv_support\pip-9.0.3-py2.py3-none-any.whl\pip\index.py", line 236, in _sort_locations
sort_path(os.path.join(path, item))
File "d:\python\python36_64\lib\site-packages\virtualenv_support\pip-9.0.3-py2.py3-none-any.whl\pip\index.py", line 217, in sort_path
if mimetypes.guess_type(url, strict=False)[0] == 'text/html':
File "D:\Python\python27_64\Lib\mimetypes.py", line 297, in guess_type
init()
File "D:\Python\python27_64\Lib\mimetypes.py", line 358, in init
db.read_windows_registry()
File "D:\Python\python27_64\Lib\mimetypes.py", line 258, in read_windows_registry
for subkeyname in enum_types(hkcr):
File "D:\Python\python27_64\Lib\mimetypes.py", line 249, in enum_types
ctype = ctype.encode(default_encoding) # omit in 3.x!
UnicodeDecodeError: 'ascii' codec can't decode byte 0xb9 in position 0: ordinal not in range(128)
在網上搜索到的解決方法如下:
1. 這是Python 2 mimetypes的bug
2. 需要將Python2.7\lib\mimetypes.py檔案中如下片段註釋或刪除:
try:
ctype = ctype.encode(default_encoding) # omit in 3.x!
except UnicodeEncodeError:
pass
成功解決!