Windows 下 Python 3.6 下安装 TensorFlow (屡败屡战)

lamdba
4个月前 阅读 228 点赞 3

事情是这样的,好不容易找到了【含代码而不止代码】的教程:


(知乎回答)


但是我用的是windows,还是win7,怎么办?有代码就好说,代码里不是有“from keras……”嘛,二话不说,pip!(感谢官方安装包自带的pip)


pip install -U keras


然后华华丽丽的出错了,最后一行是这样的:


UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb3 in position 3: invalid start byte


我用的Powershell,满屏的红色报错。但是查了查发现可以改pip程序,那个教程在哪里忘了,讲的是__init__文件中有个utf-8要改成gbk,但是那个教程是针对anaconda的,我可是堂堂正正从官网下的python……巧的是报错代码里也有个__init__文件(连行号都有!),那就改那里好了……(下面是红字的前几行)


Exception:

Traceback (most recent call last):

  File "c:\users\administrator\appdata\local\programs\python\python36\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 0xb3 in position 3: invalid start byte


简单修改——


原来的代码:


return s.decode(sys.__stdout__.encoding)


修改后的代码:


###return s.decode(sys.__stdout__.encoding)  (原版当成注释,天知道以后会不会改回来)

return s.decode('gbk')


重新执行命令:


pip install -U keras


成功!哈哈哈我真是个天才……


第二个import的是叫……“matplotlib”……


pip install matplotlib


忘记加-U了,不过似乎没什么可update,也罢。一次成功。(之前的改动不影响别的安装的啊?)


试着运行了一下代码,结果第一行就报错,在 keras 的导入里,竟然还有包括了个导入 import TensorFlow …… (果然是TensorFlow的教程,我说怎么还没装它)


pip install tensorflow


我已经不想再现当时的情况了。大致的回应很简单:pip没有找到TensorFlow 。于是我上网查,说可以把命令里的tensorflow换成.whl文件的网址,换了几次都说没有,终于有一次说找到了,但是版本不匹配……


这实在是匪夷所思的事,https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.2.1-cp36-cp36m-win_amd64.whl,毕竟cp36是python3.6,64是64位,windows文件夹说明是windows系统,既然这个文件存在,那我就该能用啊?之前看到说TensorFlow只支持py3.5以上 + 64位……慢着!


我想起来了,我当年下python点的是官网最醒目的下载按钮,那是默认32位的!我用64位机装了32位python!赶紧去下64位的python,安装的时候连覆盖提示都没有。然后(很不情愿地)重启电脑,再次——


pip install tensorflow


文件找到了,但还是报错:


Unknown requires Python '>=2.6, <3' but the running Python is 3.6.4


但这个错误很快查到了解决,使用如下命令:(pip命令和pip3命令是一回事,可以混用)


pip3 install futures==3.1.1


再次 pip install tensorflow, 成功。


真感人。


(然而作为AMD显卡用户,没有用GPU)


(2018-2-1 于地球)

| 3
评论 ( {{ comments.total }} )

还没有人发表评论...

{{ o.content }}
赞 {{ o.likes_count ? o.likes_count : '' }} 回复 {{ o.created_at }}