避开大坑:win10-CPU版(64位)环境下安装Anaconoda和tensorflow,亲测成功

**

避坑必读,强烈建议,从头按照这个方法,一定可以安装成功

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)),
    )

写在最后

如果还是有其他问题,请耐心看错误提示。实在解决不了,就请留言吧,我们一起解决。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值