windows10在python2.7的anaconda下安装py3.5.2并安装tensorflow遇到的问题

来源:互联网 发布:拍摄淘宝图片技巧 编辑:程序博客网 时间:2024/06/05 05:20

在Windows下安装tensorflow比较简单,一个pip命令就搞定。

https://www.tensorflow.org/versions/master/get_started/os_setup.html#pip-installation-on-windows


CPU版本:

pip install --upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-0.12.0rc1-cp35-cp35m-win_amd64.whl

GPU版本(最好是CUDA8.0+cuDNN v5):

pip install --upgrade https://storage.googleapis.com/tensorflow/windows/gpu/tensorflow_gpu-0.12.0rc1-cp35-cp35m-win_amd64.whl
需要注意的是目前Windows下的tensorflow仅支持python3.5,这是个很尴尬的事情。

然而在anaconda2下安装anaconda3却遇到了些问题。

首先是由于在win10下已经安装了python2.7的anaconda2,因此要使用tensorflow就必须要装一个python3.5的anaconda3,如果不想删除掉自己已经有的python2.7,解决的方法就是利用anaconda的环境管理机制,在anaconda2下创建一个python3的环境。


首先主要参考了博文:

http://blog.csdn.net/zcf1784266476/article/details/70158272

思想就是在anaconda2的安装路径下的\envs目录下创建一个文件夹,例如\envs\python3   然后在这个文件中安装下载好的python3.5的anaconda。安装的方法是使用从官网下载的.exe的安装程序安装。这样就相当于在anaconda2中建立了一个anaconda3的环境,再安装tensorflow就可以了。

要激活环境,在cmd命令中输入:

activate python3

退出环境:

deactivate

安装tensorflow时出现了一个报错问题:Cannot remove entries from nonexistent file .....(省略中间路径)\lib\site-packages\easy-install.pth

参考了博文:

http://blog.csdn.net/fool_frog/article/details/53422460

屁颠屁颠装完了tensorflow,然后打开anaconda3下的spyder准备写写tensorflow的示例代码。不料打开spyder是就提示了有新版本可供更新,那就更新吧:

进入cmd:

activate python3

conda update spyder


然后就是各种问题,首先就是提示在路径:D:\Programs\Anaconda2\envs\python3\envs\python3下找不到指定的包。我就在想,这个路径明明就是不存在的,因为新的环境的路径是D:\Programs\Anaconda2\envs\python3,而错误提示的路径怎么又多了一个envs\python3??查找了路径D:\Programs\Anaconda2\envs\python3\envs,发现这下面根本没有名为python3的文件夹,于是就自作聪明地将D:\Programs\Anaconda2\envs\python3\envs文件夹删除,发现根本无济于事。

所以我换种思路,直接在anaconda2的root环境中(也就是不激活python3环境)更新程序:

conda update -n python3 spyder


报错:

InstallError:
Install error: Error: one or more of the packages already installed depend on 'conda'
and should only be installed in the root environment: conda-build conda
These packages need to be removed before conda can proceed.

意思就是让在python3环境中删除已经有的包:conda-build 和 conda,这两个包只能存在于root环境中,于是我就删除这两个包吧:

C:\Users\ThomasZhao>conda remove -n python3 conda-build
Fetching package metadata .................
Solving package specifications: ..........


Package plan for package removal in environment D:\Programs\Anaconda2\envs\python3:


The following packages will be downloaded:


    package                    |            build
    ---------------------------|-----------------
    certifi-2017.4.17          |           py35_0         219 KB  conda-forge
    wincertstore-0.2           |           py35_0          10 KB  conda-forge
    setuptools-33.1.1          |           py35_0         509 KB  conda-forge
    wheel-0.29.0               |           py35_0         123 KB  conda-forge
    pip-9.0.1                  |           py35_0         1.9 MB  conda-forge
    ------------------------------------------------------------
                                           Total:         2.7 MB


The following NEW packages will be INSTALLED:


    certifi:        2017.4.17-py35_0 conda-forge
    wincertstore:   0.2-py35_0       conda-forge


The following packages will be REMOVED:


    conda-build:    2.0.2-py35_0     defaults


The following packages will be UPDATED:


    pip:            8.1.2-py35_0     defaults    --> 9.0.1-py35_0  conda-forge
    setuptools:     27.2.0-py35_1    defaults    --> 33.1.1-py35_0 conda-forge
    vs2015_runtime: 14.0.25123-0     defaults    --> 14.0.25420-0  conda-forge


The following packages will be SUPERCEDED by a higher-priority channel:


    wheel:          0.29.0-py35_0    defaults    --> 0.29.0-py35_0 conda-forge


Proceed ([y]/n)? y


Fetching packages ...
certifi-2017.4 100% |###############################| Time: 0:00:01 131.58 kB/s
wincertstore-0 100% |###############################| Time: 0:00:00  11.09 kB/s
setuptools-33. 100% |###############################| Time: 0:00:02 211.26 kB/s
wheel-0.29.0-p 100% |###############################| Time: 0:00:01  84.88 kB/s
pip-9.0.1-py35 100% |###############################| Time: 0:00:05 352.99 kB/s
Extracting packages ...
[      COMPLETE      ]|##################################################| 100%
Unlinking packages ...
[      COMPLETE      ]|##################################################| 100%
Linking packages ...
[      COMPLETE      ]|##################################################| 100%



成功删除了conda-build之后,再次尝试更新:


C:\Users\ThomasZhao>conda update -n python3 spyder
Fetching package metadata .................
Solving package specifications: ..........




InstallError: Install error: Error: one or more of the packages already installed depend on 'conda'
and should only be installed in the root environment: conda
These packages need to be removed before conda can proceed.


发现还有"conda"包没有删除,那就删除conda包:

C:\Users\ThomasZhao>conda remove -n python3 conda
Fetching package metadata .................
Solving package specifications: ..........




RemoveError: Remove Error: 'conda' cannot be removed from the root environment


问题就出来了,删除不了。。。这就尴尬了。


对于这个问题我想了很久,认为主要的问题还是在安装anaconda3的方法上,由于是直接新建文件夹,并在新建的文件夹下面直接采用windows安装程序的方法安装,所以这下面安装的conda认为

D:\Programs\Anaconda2\envs\python3

就是root环境,然而对于anaconda2的conda来说,这个路径只是一个新建的环境而已,并不是真正的root环境。

于是这样就产生了一个矛盾,用conda进行包管理的时候到底怎么区分root环境和非root?


综上,该方法安装的anaconda3中不能够正常使用conda进行包管理。

当然,我试了使用pip更新spyder是可以的,但是conda不行。


出于方便的考虑加上一点强迫症,总觉得不能正常使用conda很不舒服,于是采用了另一种方法在anaconda2下面安装anaconda3。那就是不使用“Windows安装程序”进行安装,而是直接新建一个环境使用conda进行安装:


conda create -n py3 python=3.5.2


这一步就是新建一个python3.5.2的环境,名字叫做py3

需要说明的就是如果使用了conda默认的安装源的话,可能会出现下载失败的问题,而且下载的速度不能慢更多,所以进行这一步之前最好换成conda清华大学的源:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --set show_channel_urls yes
这里参考了清华大学镜像网站:https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/


进行了第一步之后,接着直接在新环境中安装整个anaconda3:

activate py3

conda install anaconda


这一步进行比较漫长,使用清华的源还是比较快的了。。。。

当然,如果用不了所有的包,可以考虑安装miniconda


这样安装了anaconda3之后,直接在新环境中更新spyder:

conda update spyder

直接通过,大功告成!


接着便是自行安装tensorflow了。


总结:

使用下载windows安装程序的方法安装anaconda3,conda包管理不能正常使用,但是pip貌似是可以用的。

使用直接新建环境再使用conda命令安装anaconda3的方法显然是比较合乎情理的,且conda包管理能够正常使用。

感谢:https://zhuanlan.zhihu.com/p/22678445提供了一些conda命令使用的参考。






0 0
原创粉丝点击