**
避坑必读,强烈建议,从头按照这个方法,一定可以安装成功:
1.离线安装tensorflow,下载安装包之后再安装
2.注意激活虚拟环境后执行命令
3.如果遇到新问题,请认真看提示,不要乱百度!!!
4.出现通过python可以导入tensorflow但是jupyter notebook不行时,一定确认一下当前的python路径是否一致:
import sys
print(sys.version) #查看当前python的版本
print(sys.executable) #查看当前python的路径
这几步需要前提准备:
准备1:下载安装Anaconda3
访问清华镜像下载:https://mirrors.tuna.tsinghua.edu.cn/
安装时,全程点击"下一步",完成即可
注:也可以参考其他任何教程,假设安装路径为 G:\Anaconda3
注:本节使用Anaconda3-5.1.0-Windows-x86_64.exe(对应我电脑系统win10-(64位)版)准备2:创建虚拟环境tf2
使用管理员身份打开Anaconda Prompt,创建虚拟环境tf2(注意本次python版本3.6.2,tf2可以自行定义)
conda create --name tf2 python=3.6.2
安装Tensorflow正式开始
-
1.访问这个镜像网址下载tensorflow
https://pypi.tuna.tsinghua.edu.cn/simple/tensorflow-cpu/
根据需求下载,本节测试对应python6.3.2的版本tensorflow_cpu-2.1.0-cp36-cp36m-win_amd64.whl -
2. 在Anaconda中创建文件夹存放
G:\Anaconda3\Lib\tensor(Lib下的路径自己创建),将下载文件复制拷贝到该文件中 -
3.切换到虚拟环境tf2
管理员身份打开Anaconda Prompt,切换到对应的虚拟环境tf2下:
env list #查看虚拟环境
conda activate tf2 -
4.跳转目录
跳转到G:\Anaconda3\Lib\tensor 目录中
G: (回车)
cd Anaconda3\Lib\tensor\ -
5.安装离线的ensorflow
在tf2环境下,安装离线的文件
pip install tensorflow_cpu-2.1.0-cp36-cp36m-win_amd64.whl -
6. 在tf2环境下测试通过python导入tensorflow
在Anaconda Prompt中 tf2虚拟环境下执行:
python (回车)
import tensorflow as tf #导入tensorflow
print(tf.version) #打印tensorflow 版本
print( tf.path ) #打印tensorflow 路径 -
7.安装jupyter notebook
(推荐使用)conda install jupyter notebook -
8.在tf2环境下安装ipykernel
jupyter kernelspec list #查看tf2环境下jupyter所有可用的 kernels
pip install ipykernel
python -m ipykernel install --name tf2 -
9. 在tf2环境下测试通过jupyter notebook导入tensorflow
jupyter notebook
网页自动打开后,New–>ft2,然后写入程序
import tensorflow as tf
print(tf.version)
print( tf.path )
遇到其他问题解决办法
【1】如果出现:tensorflow2.0错误:AttributeError: module ‘tensorflow’ has no attribute ‘Session’解决办法
这是由于tensorflow2.0不支持1.X版本的session导致的。解决办法如下:
#代码前两行加入下面两行代码就可以解决所有烦恼了。
import tensorflow.compat.v1 as tf
tf.disable_eager_execution()
【2】如果出现:ImportError: cannot import name ‘AsyncGenerator’,
请关闭所有juppyter notebook和窗口重新打开,然后激活tf2的环境 ,再执行:
python -m ipykernel install --name tf2
【3】如果需要使用:matplotlib,请独立安装下载好的安装包
- **下载后安装:matplotlib-2.2.5-cp36-cp36m-win_amd64.whl
cp36代表的是python的版本,如python3.6.0就是cp36
win_amd64指的是windows系统(64位)
选择自己对应的matplotlib(其他模块也一样),下载到scripts目录下。
打开cmd,输入cd ×××/×××/×××/scripts(你的scripts路径)
然后用pip下载whl文件,
pip install matplotlib-2.2.5-cp36-cp36m-win_amd64.whl
因为,你按照上述方法安装完后请看一下自己的numpy版本=1.19.5
如果直接使用pip install matplotlib指令,会下载其他支持库,其中有一个为numpy=1.13.1,这样就会出错。所以还是先下载好独立安装包,然后再pip安装。
但是这样,导入时还会出现一个新错误
‘version_info’ object has no attribute ‘version’
不要怕
打开以下文件:G:\Anaconda3\envs\tf1\Lib\site-packages\pyparsing,下的__init__.py文件
init.py 对应位置(这一段)
class version_info(NamedTuple):
major: int
minor: int
micro: int
releaselevel: str
serial: int
@property
def __version__(self):
return "{}.{}.{}".format(self.major, self.minor, self.micro) + (
"{}{}{}".format(
"r" if self.releaselevel[0] == "c" else "",
self.releaselevel[0],
self.serial,
),
"",
)[self.releaselevel == "final"]
def __str__(self):
return "{} {} / {}".format(__name__, self.__version__, __version_time__)
def __repr__(self):
return "{}.{}({})".format(
__name__,
type(self).__name__,
", ".join("{}={!r}".format(*nv) for nv in zip(self._fields, self)),
)
init.py 修改后
def __init__(self,major:int,minor:int,micro:int,releaselevel:str,serial:int):
self.major = major
self.minor = minor
self.micro = micro
self.releaselevel = releaselevel
self.serial = serial
@property
def __version__(self):
return "{}.{}.{}".format(self.major, self.minor, self.micro) + (
"{}{}{}".format(
"r" if self.releaselevel[0] == "c" else "",
self.releaselevel[0],
self.serial,
),
"",
)[self.releaselevel == "final"]
def __str__(self):
return "{} {} / {}".format(__name__, self.__version__, __version_time__)
def __repr__(self):
return "{}.{}({})".format(
__name__,
type(self).__name__,
", ".join("{}={!r}".format(*nv) for nv in zip(self._fields, self)),
)
写在最后
如果还是有其他问题,请耐心看错误提示。实在解决不了,就请留言吧,我们一起解决。