超级啰嗦的python3.7+tensorflow详细安装过程and报错解决方法说明

昨天跑代码发现我的虚拟环境python3.5+tensorflow有些方法不支持啊,准备再创建个python3.7的虚拟环境。然鹅,烦的很啊,最近的各种镜像源好像都停用了,无语子,我前几天安装python3.5的时候还好好的,这两天突然一个都不能用了。

抱怨结束,重置镜像源:conda config --remove-key channels


以下过程是基于Anaconda3已经安装成功的基础上进行的,安装anaconda的过程我不赘述了。

创建python3.7的虚拟环境

1.先打开你的Anaconda Prompt,啰嗦一下,还是先康康Anaconda是否安装成功吧:conda --version
在这里插入图片描述
2.检测一下安装了哪些环境:conda info --envs
在这里插入图片描述
TF35(我自己起的名字,怕我忘了python的版本)是我之前安装的一个虚拟环境,包含python3.5.6+tensorflow1.10.0。虽然安装没出啥问题,但是不建议新手安装了,搞深度学习不够用,而且前几天看到通知说python3.5以后不维护了。python3.8也先别尝试了,好像没有合适的tensorflow,看大神说问题比较多,我们还是乖乖的在大树下乘凉吧。
在这里插入图片描述
3.检查一下目前有哪些版本的python可以安装(其实也没必要):conda search --full-name python
在这里插入图片描述
我这边显示了python2.7.13到3.9.2版本,本次安装需要的是3.7版本,所以你可以自己从中指定一个3.7.X,也可以直接输入3.7,它就会给你安装该系列最新版本→3.7.10。(无所谓啦,哪个版本都是一个套路)

4.创建一个新的虚拟环境,python3.7版本:python:conda create --name TF37 python=3.7
(我前面有说明过呐,TF37是我自己起的虚拟环境的名字,有些教程直接写的tensorflow,随便你啦,只要你记得住就行,还有要会替换,抄作业也要把名字写对昂)
在这里插入图片描述输入个y然后就等着吧!一顿嗖嗖的下载之后(也可能慢的跟老牛一样,可以替换国内的镜像源下载)。我用的默认的源,速度还可以。
在这里插入图片描述

5.成功创建了新的虚拟环境后按照提示,激活:activate TF37
在这里插入图片描述
退出TF37环境:conda deactivate

6.再确认一下TF37环境已经被成功添加:conda info --envs
在这里插入图片描述
7.康康新环境中的python版本:python --version
在这里插入图片描述

安装tensorflow

1.(这一步其实对安装没太大用,你可以不操作)
为了避免python和tensorflow安装版本不匹配导致一堆问题,我先来看看相关的可选择的tensorflow版本,执行命令:anaconda search -t conda tensorflow
出来一堆很吓人的东西,别怕!!!
对应自己的平台platform进行选择,我是win64,像Linux64啊,OSX64,那跟我都没啥关系,不管他。
在这里插入图片描述
2.查看当前版本对应的安装命令:anaconda show conda-forge/tensorflow
我看别人的教程五花八门的,这也不行那也不行,那就用官方大大给你的命令吧。
我的理解是以下罗列的tensorflow版本都可以指定安装,但是emmm别指定2.0+的版本就好,容易出问题。最好选择1.14.0,你不想出错就跟着我走吧。
在这里插入图片描述
3.输入conda install --channel https://conda.anaconda.org/conda-forge tensorflow
你给我睁大眼睛细细看,它列出来默认的tensorflow,版本是1.14.0,说明它们最般配!
在这里插入图片描述输入y,默认源下载速度可以,正好我去吃个饭。
(如果有几个文件下载失败,你就再执行一下上面那个命令,反正要把所有的包都下载完成)
下载安装完成后会显示个done哦。
在这里插入图片描述

测试and解决报错

1.看到我那个done了嘛,那就是安装好了哟。下面来测试一下。
输入python
在这里插入图片描述倒霉啊!一个错误:Failed calling sys.interactivehook
解决办法: https://blog.csdn.net/hongxingabc/article/details/102610442
作者给了两种解决办法,推荐的第二种,然鹅我根本找不到那个history.py文件,那就拉倒吧。
第一种方法在C盘搜索.python_history文件,一秒钟吧,然后有那么几个中文,删了保存。
在这里插入图片描述
再输入python试试,古德正常了。
在这里插入图片描述2.导入tensorflow:import tensorflow as tf
在这里插入图片描述啊呀~~~~我滴心很累啊!
错误:D:\Anaconda3\envs\TF37\lib\site-packages\tensorflow\python\framework\dtypes.py:516: FutureWarning: Passing (type, 1) or ‘1type’ as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / ‘(1,)type’. _np_qint8 = np.dtype([(“qint8”, np.int8, 1)])
解决办法:https://blog.csdn.net/qq_42604176/article/details/113674330
看错误提示是两个不同地址的dtypes.py文件出了问题哦,分别操作!
(1)打开:D:\Anaconda3\envs\TF37\Lib\site-packages\tensorflow\python\framework\dtypes.py
这是我的地址,如果你出现类似问题,就看看自己的错误提示,地址复制一下。
错误提示516-525行出问题了,找到这几行,如图。
在这里插入图片描述用下面的代码替换,看着是括号问题,烦得很不懂!

_np_qint8 = np.dtype([("qint8", np.int8, (1,))])
_np_quint8 = np.dtype([("quint8", np.uint8, (1,))])
_np_qint16 = np.dtype([("qint16", np.int16, (1,))])
_np_quint16 = np.dtype([("quint16", np.uint16, (1,))])
_np_qint32 = np.dtype([("qint32", np.int32, (1,))])

# _np_bfloat16 is defined by a module import. 

# Custom struct dtype for directly-fed ResourceHandles of supported type(s).

np_resource = np.dtype([("resource", np.ubyte, (1,))])

(2)另一个地址的dtypes.py文件,提示541-550行有问题:D:\Anaconda3\envs\TF37\Lib\site-packages\tensorboard\compat\tensorflow_stub\dtypes.py
在这里插入图片描述用下面的代码替换掉,保存关闭。

_np_qint8 = np.dtype([("qint8", np.int8, (1,))])
_np_quint8 = np.dtype([("quint8", np.uint8, (1,))])
_np_qint16 = np.dtype([("qint16", np.int16, (1,))])
_np_quint16 = np.dtype([("quint16", np.uint16, (1,))])
_np_qint32 = np.dtype([("qint32", np.int32, (1,))])

# _np_bfloat16 is defined by a module import.

# Custom struct dtype for directly-fed ResourceHandles of supported type(s).
np_resource = np.dtype([("resource", np.ubyte, (1,))])

再来一次:import tensorflow as tf,终于没报错了!
在这里插入图片描述
继续:
hello = tf.constant(‘Hello tensorfolw’)
sess = tf.Session()
print(sess.run(hello))

在这里插入图片描述
到此,你已经成功安装了python3.7+tensorflow1.14.0,你很棒!

其他问题

1.上述prin()打印一个b的问题,原因请参考:https://stackoverflow.com/questions/6269765/what-does-the-b-character-do-in-front-of-a-string-literal
没什么影响的,但是你看着很不爽的话就缀上.decode(‘utf-8’),或者.decode()
在这里插入图片描述
2.查看tensorflow版本信息:pip show tensorflow
在这里插入图片描述
3.import tensorflow报错
(1)DLL加载失败:这种情况基本上是因为python版本和tensorflow版本不对应导致的。(通常是因为python版本过高,建议安装3.6或者3.7的,别安装3.8,听话呀不然我生气了)。

(2)其他错误信息:复制错误信息,上网搜索,去吧,乖。


超级郑重的结束语

就这么一个小破文,忙忙碌碌大半天,大家加油啊!本美少女顶着一头浓密的秀发碎觉去了!有问题别问我,问我也不会,我是笨蛋我是笨蛋我是笨蛋。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值