Win10 下TensorFlow安装、使用
第零部分 Python本身
首先我们需要从python本身说起, 从根源寻找问题, 我们在使用python语言编写程序之前需要下载一个python解释器, 这才是python的本体, 没了python解释器, 我们即使写了无比正确优雅的python脚本也没办法运行, 那这个解释器在哪呢.就在你安装python的地方,比如我的在C:\Users\Acring\AppData\Local\Programs\Python\Python36-32
python.exe, 也就是Python解释器
除此之外还有个很重要的东西, Lib, 也就是python包文件, 包括自带的包和第三方包
Lib目录如上图, 这里有python自带的包, 如笔者常用的日志包logging, 异步包 concurrent, 而所有的第三方包都放在site-packages文件夹里面
了解了这些我们就对整个python环境有了大概的了解, 其实最关键的, 一个python环境中需要有一个解释器, 和一个包集合.
解释器
解释器根据python的版本大概分为2和3. python2和3之间无法互相兼容, 也就是说用python2语法写出来的脚本不一定能在python3的解释器中运行.
包集合
包集合中包含了自带的包和第三方包, 第三方包我们一般通过pip或者easy_install来下载, 当一个python环境中不包含这个包, 那么引用了这个包的程序不能在该python环境中运行.
比如说一个爬虫脚本用到了第三方的requests包,而另一台计算机是刚刚装好原始python的, 也就是说根本没有任何第三方包, 那么这个爬虫脚本是无法在另一台机器上运行的.
Anacond提供了包管理,并可以在不同的环境之间切换
简单来说,Anaconda是Python的包管理器和环境管理器。
-
Anaconda附带了一大批常用数据科学包,它附带了conda、Python和 150 多个科学包及其依赖项。因此你可以用Anaconda立即开始处理数据。
-
管理包。
Anaconda 是在 conda(一个包管理器和环境管理器)上发展出来的。在数据分析中,你会用到很多第三方的包,而conda(包管理器)可以很好的帮助你在计算机上安装和管理这些包,包括安装、卸载和更新包。
-
管理环境。
为什么需要管理环境呢?比如你在A项目中用到了Python2,而新的项目要求使用Python3,而同时安装两个Python版本可能会造成许多混乱和错误。这时候conda就可以帮助你为不同的项目建立不同的运行环境。还有很多项目使用的包版本不同,比如不同的pandas版本,不可能同时安装两个pandas版本。你要做的应该是在项目对应的环境中创建对应的pandas版本。这时候conda就可以帮你做到。
第一部分 Anaconda介绍、安装和命令
1- Anaconda的介绍
Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。 因为包含了大量的科学包,Anaconda 的下载文件比较大(约 531 MB),如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和 Python)。
Conda是一个开源的包、环境管理器,可以用于在同一个机器上安装不同版本的软件包及其依赖,并能够在不同的环境之间切换
2- Anaconda安装
首先安装Anaconda: 这里是从清华镜像网站下载的
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
我选择下载的版本
Anaconda3-5.3.1-Windows-x86_64.exe
安装注意事项:安装目录最好不要有空格;是否把Anaconda加入环境变量的选项上打勾,这涉及到能否直接在cmd中使用conda、jupyter、ipython等命令;如果不打勾可以再安装以后将对应的环境变量添加上去
配置环境变量
如果是windows的话需要去 控制面板\系统和安全\系统\高级系统设置\环境变量\用户变量\PATH 中添加 anaconda的安装目录的Scripts文件夹, 比如我的路径是C:\ProgramData\Anaconda2\Scripts, 看个人安装路径不同需要自己调整.
(可能还要添加Anaconda的路径)
环境变量配置
将以下路径添加到系统环境变量中
D:\ProgramData\Anaconda3;
D:\ProgramData\Anaconda3\Scripts;
D:\ProgramData\Anaconda3\Library\mingw-w64\bin;
D:\ProgramData\Anaconda3\Library\usr\bin;
D:\ProgramData\Anaconda3\Library\bin;
之后就可以打开命令行(最好用管理员模式打开) 输入 conda --version
如果输出conda 4.5.4之类的就说明环境变量设置成功了.
为了避免可能发生的错误, 我们在命令行输入conda upgrade --all 先把所有工具包进行升级
如果之前安装了Python,
-
安装好了以后,可以在cmd中输入 Python,发现显示的还是你之前安装的版本,像我的就是Python2.7,这是因为你之前安装Python2,7的时候,是将它的安装目录添加到了环境变量中的。在系统环境变量中找到对应之前安装Python的路径并删除,像我的就是D:\Program Files\python2.7 和D:\Program Files\python2.7\Scripts。将其删除。
接着重启电脑,再在cmd中输入python 就会显示是Anaconda自带的版本了。
4. 将原来python加入Anoconda中
在Anoconda中,用户以后安装的python会存放在envs中。如果在cmd中输入conda info -e 或者 conda info --envs 就可以得到你安装的python信息。 在考察一下conda中安装其他包的命令:
创建一个名为python34的环境,指定Python版本是3.4(不用管是3.4.x,conda会为我们自动寻找3.4.x中的最新版本)
conda create --name python34 python=3.4
其实就是在envs中创建了一个python34的文件夹,这个也就是安装python34的一个安装目录。了解这个原理之后,就可以轻松将原来的环境转到Aconda进行管理。
直接将你原来安装python的整个文件夹拷贝到envs的目录下。
然后你再用conda info -e 命令,就会发现多了一个你添加的文件夹的名字的python,我把自己之前安装的python2.7的包拷过去。还可以给文件下重命名一下,我命名的是python27。
conda environments:
python27 * D:\Anaconda3\envs\python27
root D:\Anaconda3
Anaconda安装成功之后,我们需要修改其包管理镜像为国内源。
简单来说就是在cmd中分别运行这两个命令就好了。
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
设置Anaconda镜像,加速下载包
使用conda install 包名 安装需要的Python非常方便,但是官方的服务器在国外,因此下载速度很慢,国内清华大学提供了Anaconda的仓库镜像,我们只需要配置Anaconda的配置文件,添加清华的镜像源,然后将其设置为第一搜索渠道即可cmd命令行下分别执行以下命令:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/c
conda config --set show_channel_urls yes
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/`
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
配置完后可以测试一下,安装第三方包明显神速了
设置好镜像以后,我们继续进行环境管理。
3- Anaconda 命令和使用
常用命令
activate // 切换到base环境
activate learn // 切换到learn环境
conda create -n learn python=3 // 创建一个名为learn的环境并指定python版本为3(的最新版本)
conda env list // 列出conda管理的所有环境
conda list // 列出当前环境的所有包
conda install requests 安装requests包
conda remove requests 卸载requets包
conda remove -n learn --all // 删除learn环境及下属所有包
conda update requests 更新requests包
conda env export > environment.yaml // 导出当前环境的包信息
conda env create -f environment.yaml // 用配置文件创建新的虚拟环境
一些例子和使用
环境管理
4. 将原来python加入Anoconda中
在Anoconda中,用户以后安装的python会存放在envs中。如果在cmd中输入conda info -e 或者 conda info --envs 就可以得到你安装的python信息。 在考察一下conda中安装其他包的命令:
创建一个名为python34的环境,指定Python版本是3.4(不用管是3.4.x,conda会为我们自动寻找3.4.x中的最新版本)
conda create --name python34 python=3.4
其实就是在envs中创建了一个python34的文件夹,这个也就是安装python34的一个安装目录。了解这个原理之后,就可以轻松将原来的环境转到Aconda进行管理。
直接将你原来安装python的整个文件夹拷贝到envs的目录下。
然后你再用conda info -e 命令,就会发现多了一个你添加的文件夹的名字的python,我把自己之前安装的python2.7的包拷过去。还可以给文件下重命名一下,我命名的是python27。
conda environments:
python27 * D:\Anaconda3\envs\python27
root D:\Anaconda3
5.环境管理
安装好后,使用activate激活某个环境
activate python34 # for Windows
source activate python34 # for Linux & Mac
激活后,会发现terminal输入的地方多了python34的字样,实际上,此时系统做的事情就是把默认2.7环境从PATH中去除,再把3.4对应的命令加入PATH
此时,再次输入
python --version
可以得到Python 3.4.5 :: Anaconda 4.1.1 (64-bit)
,即系统已经切换到了3.4的环境
如果想返回默认的python 2.7环境,运行
deactivate python34 # for Windows
source deactivate python34 # for Linux & Mac
删除一个已有的环境
conda remove --name python34 --all
可以使用上面的激活命令检验一下:
在cmd中输入python得到自带版本信息,然后再激活python27,显示(python27) C:\Users\UT> 也就是搞定了。
C:\Users\UT>python
Python 3.5.2 |Anaconda 4.2.0 (64-bit)| (default, Jul 5 2016, 11:41:13) [MSC v.1
900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
exit()
C:\Users\UT>activate python27
(python27) C:\Users\UT>
设置国内镜像命令
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
然后你的.condarc 文件应该是这样的内容,或者你可以直接修改该文件的内容设置镜像。
channels:
show_channel_urls: yes
设置Anaconda镜像,加速下载包
使用conda install 包名 安装需要的Python非常方便,但是官方的服务器在国外,因此下载速度很慢,国内清华大学提供了Anaconda的仓库镜像,我们只需要配置Anaconda的配置文件,添加清华的镜像源,然后将其设置为第一搜索渠道即可cmd命令行下分别执行以下命令:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/c
conda config --set show_channel_urls yes
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/`
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
共享环境
共享环境非常有用,它能让其他人安装你代码中使用的所有包,并确保这些包的版本正确。比如你开发了一个系统,你要提交给项目部署系统的人来部署你的项目,但是他们并不知道你当时开发时使用的是哪个python版本,以及使用了哪些包和包的版本。这怎么办呢?你可以在你当前的环境的终端中使用:
将你当前的环境保存到文件中包保存为YAML文件
conda env export > environment.yaml
将你当前的环境保存到文件中包保存为YAML文件(包括Pyhton版本和所有包的名称)。命令的第一部分 conda env export 用于输出环境中的所有包的名称(包括 Python 版本)。你在终端中上可以看到导出的环境文件路径。在 GitHub 上共享代码时,最好同样创建环境文件并将其包括在代码库中。这能让其他人更轻松地安装你的代码的所有依赖项。
导出的环境文件,在其他电脑环境中如何使用呢?
首先在conda中进入你的环境,比如conda activate python27。然后在使用以下命令更新你的环境:
其中-f表示你要导出文件在本地的路径,所以/path/to/environment.yml要换成你本地的实际路径
conda env update -f=/path/to/environment.yml
对于不使用conda 的用户,我们通常还会使用以下命令将一个 txt文件导出并包括在其中:
pip freeze > environment.txt
然后我将该文件包含在项目的代码库中,其他项目成员即使在他的电脑上没有安装conda也可以使用该文件来安装和我一样的开发环境:
他在自己的电脑上进入python命令环境,然后运行以下命令就可以安装该项目需要的包:
1. #其中C:\Users\Microstrong\enviroment.txt是该文件在你电脑上的实际路径。
2. pip install -r C:\Users\Microstrong\enviroment.txt
4- Anaconda 深入一下
或许你会觉得奇怪为啥anaconda能做这些事, 他的原理到底是什么, 我们来看看anaconda的安装目录
这里只截取了一部分, 但是我们和本文章最开头的python环境目录比较一下, 可以发现其实十分的相似, 其实这里就是base环境. 里面有着一个基本的python解释器, lLib里面也有base环境下的各种包文件.
那我们自己创建的环境去哪了呢, 我们可以看见一个envs, 这里就是我们自己创建的各种虚拟环境的入口, 点进去看看
可以发现我们之前创建的learn目录就在下面, 再点进去
activate 能将我们引入anaconda设定的虚拟环境中, 如果你后面什么参数都不加那么会进入anaconda自带的base环境,
你可以输入python试试, 这样会进入base环境的python解释器, 如果你把原来环境中的python环境去除掉会更能体会到, 这个时候在命令行中使用的已经不是你原来的python而是base环境下的python.而命令行前面也会多一个(base) 说明当前我们处于的是base环境下。
这不就是一个标准的python环境目录吗?
这么一看, anaconda所谓的创建虚拟环境其实就是安装了一个真实的python环境, 只不过我们可以通过activate,conda等命令去随意的切换我们当前的python环境, 用不同版本的解释器和不同的包环境去运行python脚本.
5- Anaconda拓展(其它常用库 & IDE)
与JetBrains PyCharm连接
在工作环境中我们会集成开发环境去编码, 这里推荐JB公司的PyCharm, 而PyCharm也能很方便的和anaconda的虚拟环境结合
在Setting => Project => Project Interpreter 里面修改 Project Interpreter , 点击齿轮标志再点击Add Local为你某个环境的python.exe解释器就行了
比如你要在learn环境中编写程序, 那么就修改为C:\Users\Administrator\AppData\Local\conda\conda\envs\learn, 可以看到这时候下面的依赖包也变成了learn环境中的包了.接下来我们就可以在pycharm中愉快的编码了。
下面为大家介绍一下Python库的安装方法
在cmd中输入:pip list 可以查看安装的库
在所有程序里面可以看到安装的组件,有Anaconda管理器(Anaconda Command Prompt),IPython Notebook,IPython QT,IPython,Spyder。点击IPython,进入IPython的界面。
可以在cmd中输入pip list 或者在Anaconda管理器中输入conda list来查看已经安装的库
-
Anaconda Navigtor :用于管理工具包和环境的图形用户界面,后续涉及的众多管理命令也可以在 Navigator 中手工实现。
-
Jupyter notebook :基于web的交互式计算环境,可以编辑易于人们阅读的文档,用于展示数据分析的过程。
-
qtconsole :一个可执行 IPython 的仿终端图形界面程序,相比 Python Shell 界面,qtconsole 可以直接显示代码生成的图形,实现多行代码输入执行,以及内置许多有用的功能和函数。
-
spyder :一个使用Python语言、跨平台的、科学运算集成开发环境。
4\. 将原来python加入Anoconda中 在Anoconda中,用户以后安装的python会存放在envs中。如果在cmd中输入conda info -e 或者 conda info --envs 就可以得到你安装的python信息。 在考察一下conda中安装其他包的命令:
创建一个名为python34的环境,指定Python版本是3.4(不用管是3.4.x,conda会为我们自动寻找3.4.x中的最新版本)
conda create --name python34 python=3.4
其实就是在envs中创建了一个python34的文件夹,这个也就是安装python34的一个安装目录。了解这个原理之后,就可以轻松将原来的环境转到Aconda进行管理。
直接将你原来安装python的整个文件夹拷贝到envs的目录下。
然后你再用conda info -e 命令,就会发现多了一个你添加的文件夹的名字的python,我把自己之前安装的python2.7的包拷过去。还可以给文件下重命名一下,我命名的是python27。
conda environments:
python27 * D:\Anaconda3\envs\python27
root D:\Anaconda3
5.环境管理
安装好后,使用activate激活某个环境
activate python34 # for Windows
source activate python34 # for Linux & Mac
激活后,会发现terminal输入的地方多了python34的字样,实际上,此时系统做的事情就是把默认2.7环境从PATH中去除,再把3.4对应的命令加入PATH
此时,再次输入
python --version
可以得到Python 3.4.5 :: Anaconda 4.1.1 (64-bit)
,即系统已经切换到了3.4的环境
如果想返回默认的python 2.7环境,运行
deactivate python34 # for Windows
source deactivate python34 # for Linux & Mac
删除一个已有的环境
conda remove --name python34 --all
可以使用上面的激活命令检验一下:
在cmd中输入python得到自带版本信息,然后再激活python27,显示(python27) C:\Users\UT> 也就是搞定了。
C:\Users\UT>python
Python 3.5.2 |Anaconda 4.2.0 (64-bit)| (default, Jul 5 2016, 11:41:13) [MSC v.1
900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
exit()
C:\Users\UT>activate python27
(python27) C:\Users\UT>
6.设置国内镜像命令
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
然后你的.condarc 文件应该是这样的内容,或者你可以直接修改该文件的内容设置镜像。
channels:
show_channel_urls: yes
网友评论