转载请注明出处:http://blog.csdn.net/apply51/article/details/79516002
本人在使用Anaconda prompt通过命令:
pip install --ignore-installed --upgrade tensorflow
安装tensorflow时报错:
Building wheels for collected packages: absl-py, gast, termcolor, html5lib Running setup.py bdist_wheel for absl-py ... error Failed building wheel for absl-py Running setup.py clean for absl-py Running setup.py bdist_wheel for gast ... error Failed building wheel for gast Running setup.py clean for gast Running setup.py bdist_wheel for termcolor ... error Failed building wheel for termcolor Running setup.py clean for termcolor Running setup.py bdist_wheel for html5lib ... error Failed building wheel for html5lib Running setup.py clean for html5lib Failed to build absl-py gast termcolor html5lib Installing collected packages: numpy, setuptools, six, protobuf, grpcio, werkzeug, markdown, wheel, html5lib, bleach, tensorboard, absl-py, astor, gast, termcolor, tensorflow Running setup.py install for html5lib ... error Exception: Traceback (most recent call last): File "C:\DeepLearning\Anaconda3\envs\tensorflow\lib\site-packages\pip\compat\__init__.py", line 73, in console_to_str return s.decode(sys.__stdout__.encoding) UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc1 in position 45: invalid start byte
During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\DeepLearning\Anaconda3\envs\tensorflow\lib\site-packages\pip\basecommand.py", line 215, in main status = self.run(options, args) File "C:\DeepLearning\Anaconda3\envs\tensorflow\lib\site-packages\pip\commands\install.py", line 342, in run prefix=options.prefix_path, File "C:\DeepLearning\Anaconda3\envs\tensorflow\lib\site-packages\pip\req\req_set.py", line 784, in install **kwargs File "C:\DeepLearning\Anaconda3\envs\tensorflow\lib\site-packages\pip\req\req_install.py", line 878, in install spinner=spinner, File "C:\DeepLearning\Anaconda3\envs\tensorflow\lib\site-packages\pip\utils\__init__.py", line 676, in call_subprocess line = console_to_str(proc.stdout.readline()) File "C:\DeepLearning\Anaconda3\envs\tensorflow\lib\site-packages\pip\compat\__init__.py", line 75, in console_to_str return s.decode('utf_8') UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc1 in position 45: invalid start byte
找了一大片的解决方案,有使用 Notepad++改编码格式的,也有添加三条代码的:
sys.getdefaultencoding() != 'gbk': reload(sys) sys.setdefaultencoding('gbk')
都不能解决我的问题,最后的解决办法是,根据最后的报错提示行:
File "C:\DeepLearning\Anaconda3\envs\tensorflow\lib\site-packages\pip\compat\__init__.py", line 75, in console_to_str return s.decode('utf_8')
找到__init__.py,使用Notepad++打开,将提示的第75行进行更改:
return s.decode(sys.__stdout__.encoding) 应改为 return s.decode('cp936')
更改__init__.py时记得备份一下,以备以后需要使用到原版。
折腾了一天,问题终于解决,开心并记录之。