• 避开大坑: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)),
            )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    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)),
        )
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    写在最后

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

  • 相关阅读:
    啃完这本阿里手册,应届七面进阿里
    java开发
    JAVA基础(十)
    wps本地js宏基础语句
    现货白银的代码为什么不是ag
    搭建内网穿透服务
    VUE综合数据库编程
    PHP 智能物业管理系统mysql数据库web结构apache计算机软件工程网页wamp
    AC8015笔记
    QML中使用正则表达式
  • 原文地址:https://blog.csdn.net/qq_28903011/article/details/127935397