Python2(python)与Python3:

首先要明确的是Python2与Python3不是等价的,Python3主要指安装python3.0及其更高版本的解释器,而Python2主要指安装python3.0以下版本的解释器。

py2:print语句,语句就意味着可以直接跟要打印的东西,如果后面接的是一个元组对象,直接打印。

py3:print函数,函数就以为这必须要加上括号才能调用,如果接元组对象,可以接收多个位置参数,并可以打印。

pip的使用:

使用下列命令可以查看当前python环境中安装的的库机器版本号。

pip list

Anaconda 介绍:

python环境介绍:

我们在使用python语言编写程序之前需要下载一个python解释器, 这才是python的本体, 没了python解释器, 我们即使写了无比正确优雅的python脚本也没办法运行, 那这个解释器在哪呢.就在你安装python的地方,即python.exe文件,除此之外,还有个很重要的部分Lib, 也就是python包文件, 包括程序运行自带的包和第三方包。

Lib目录如上图, 这里有python自带的包, 如笔者常用的日志包logging, 异步包 concurrent, 而所有的第三方包都放在site-packages文件夹里面。了解了这些我们就对整个python环境有了大概的了解, 其实最关键的, 一个python环境中需要有一个解释器, 和一个包集合。

解释器就不用过多介绍了,想必大家都很了解;我们知道包集合中包含了自带的包和第三方包, 第三方包我们一般通过pip或者easy_install来下载, 当一个python环境中不包含这个包, 那么引用了这个包的程序不能在该python环境中运行。比如我在一台主机上编写了一个python程序,其中引用了一个第三方包,这时将该程序放到另一台主机执行,如果该主机python环境中不存在该第三方包,便无法执行该程序。

下图为anaconda和python版本对照表:

Python环境搭建总结-编程之家

Anaconda 的引出:

 python环境解释完了, 那么接下来就要说明这样的环境究竟产生哪些问题, 因为anaconda正式为了解决这些问题而诞生的  

  • 1.到底该装 Python2 呢还是 Python3?

       python2和python3在语法上是不兼容的, 那我的机器上应该装python2还是python3呢, 可能一开始选一个学习就好了, 但是如果你要开发的程序必须使用python2而不能使用python3,那这时候你就不得不再下载一个python2, 如果还是切换环境变量岂不是很麻烦。

  • 2.包如何管理?

  如果我在本地只有一个python环境那我所有程序用到的各种包都只能放到同一个环境中, 导致环境混乱,;另外当我将写好的程序放到另一主机上运行时又会遇到缺少相关包, 需要自己手动一个个下载的情况, 实在是烦人, 要是能每个程序开发都选用不同的python环境, 而开发好之后又能将该程序需要的环境(第三方包)都独立打包出来就好了。

解决以上问题,Anaconda是一个很好的选择。前往Anaconda 官网下载并安装,这里不详细介绍,(Anaconda下载安装后是默认安装好jupyter notebook)。

  • Anaconda Navigtor :用于管理工具包和环境的图形用户界面,后续涉及的众多管理命令也可以在 Navigator 中手工实现。
  • Jupyter notebook :基于web的交互式计算环境,可以编辑易于人们阅读的文档,用于展示数据分析的过程。
  • qtconsole :一个可执行 IPython 的仿终端图形界面程序,相比 Python Shell 界面,qtconsole 可以直接显示代码生成的图形,实现多行代码输入执行,以及内置许多有用的功能和函数。
  • spyder :一个使用Python语言、跨平台的、科学运算集成开发环境。

配置环境变量:

  如果是windows的话需要去环境变量PATH 中添加 anaconda的安装目录的Scripts文件夹, 比如我的路径是D:SoftwareAnacondaScripts, 之后就可以打开命令行(最好用管理员模式打开) 输入 conda --version,如果输出conda 4.4.11之类的就说明环境变量设置成功了。

  为了避免可能发生的错误, 我们在命令行输入conda upgrade --all 先把所有工具包进行升级。

创建并管理虚拟环境:

  • 接下来我们使用命令行工具来创建我们一个个独立的python环境:

activate 能将我们引入anaconda设定的虚拟环境中, 如果你后面什么参数都不加那么会进入anaconda自带的base环境,你可以输入python试试, 这样会进入base环境的python解释器;如果你把原来环境中的python环境去除掉会更能体会到, 这个时候在命令行中使用的已经不是你原来的python而是base环境下的python.而命令行前面也会多一个(base) 说明当前我们处于的是base环境下。

Python环境搭建总结-编程之家

  • 创建自己的虚拟环境:

我们当然不满足一个base环境, 我们应该为自己的程序安装单独的虚拟环境.创建一个名称为learn的虚拟环境并指定python版本为3(这里conda会自动找3中最新的版本下载):

conda create -n learn python=3

Python环境搭建总结-编程之家

上图我们创建一个虚拟环境,名称为learn,接下来我们切换到这个环境, 一样还是用activae命令后面加上要切换的环境名称:

activate learn

当然如果我们忘记了我们创建的虚拟环境名称我们可以先用:

conda env list

现在的learn环境除了python自带的一些官方包之外是没有其他包的, 一个比较干净的环境,我们可以试试先输入python打开python解释器然后开始导入一个包尝试一下:

import requests

会报错找不到requests包,这是很正常的。接下来我们就要演示如何去安装requests包:

使用下列语句退出我们的python解释器:

exit()
  • 安装第三方包
conda install requests 或者 pip install requests

安装完成之后,我们再输入python进入解释器并import requests包, 便能成功导入。

  • 卸载第三方包
conda remove requests 或者 pip uninstall requests
  • 查看环境中所有包信息
conda list 或者 pip list
  • 导入导出环境

使用下列语句,便可以把我们当前创建的python环境信息导入到一个.yaml文件中保存起来: 

conda env export > environment.yaml  (这是一个路径,比如:G:testenvironment.yaml)

 当需要重新创建一个相同的虚拟环境时可以用:比如修改一下这个文件里面的两个内容:打开.yaml文件先看一下内容:

Python环境搭建总结-编程之家

conda env create -f environment.yaml (G:testenvironment.yaml)

这样我们可以通过.yaml文件存储的信息,将我们需要的python环境创建出来。

下面是一些常用的命令:

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 // 用配置文件创建新的虚拟环境

下面大致介绍下,Anaconda为什么可以做到这些;他的原理到底是什么, 我们来看看anaconda的安装目录:

Python环境搭建总结-编程之家

这里只截取了一部分, 但是我们和本文章最开头的python环境目录比较一下, 可以发现其实十分的相似,;其实这里就是base环境. 里面有着一个基本的python解释器, Lib里面也有base环境下的各种包文件,那我们自己创建的环境去哪了呢, 我们可以看见一个envs, 这里就是我们自己创建的各种虚拟环境的入口, 点进去看看:

Python环境搭建总结-编程之家

 可以发现我们之前创建的learn目录就在下面, 再点进去:

Python环境搭建总结-编程之家

这不就是一个标准的python环境目录吗?这么一看, anaconda所谓的创建虚拟环境其实就是安装了一个真实的python环境, 只不过我们可以通过activate,conda等命令去随意的切换我们当前的python环境, 用不同版本的解释器和不同的包环境去运行python脚本。

Anaconda常用命令:

conda install python=3.6 //更新python版本为3.6

Anaconda 这部分内容主要整理自:这篇博客

Ipython介绍:

ipython是一个python的交互式shell,比默认的python shell好用得多,支持变量自动补全,自动缩进,支持bash shell命令,内置了许多很有用的功能和函数。学习ipython将会让我们以一种更高的效率来使用python。同时它也是利用Python进行科学计算和交互可视化的一个最佳的平台。

IPython提供了两个主要的组件:

1.一个强大的python交互式shell 
2.供Jupyter notebooks使用的一个Jupyter内核(IPython notebook)

ipython的安装与卸载:

pip uninstall ipython

具体细节参考:IPython介绍_一颗小甜心的博客-CSDN博客_ipython

Jupyter Notebook的安装与使用:

简介:

Jupyter Notebook以前被称为IPython notebook,它是基于网页的用于交互计算的应用程序。其可被应用于全过程计算:开发、文档编写、运行代码和展示结果。简而言之,Jupyter Notebook是以网页的形式打开,可以在网页页面中直接编写代码运行代码,代码的运行结果也会直接在代码块下显示的程序。如在编程过程中需要编写说明文档,可在同一个页面中直接编写,便于作及时的说明和解释。

注意:

安装Jupyter Notebook的前提是需要安装了Python解释器(3.3版本及以上,或2.7版本)。

安装前的准备工作:

1、切换到要添加的虚拟环境,确认是否安装 ipykernel

ipykernel介绍:

(个人感觉这个应该是ipython提供的,版本号应该与ipython版本号保持一致)

对于不同环境的内核,如果您希望为不同的虚拟机或Conda环境设置多个IPython内核,则需要为KelnScript指定唯一的名称。

特点:
IPython 为交互式计算提供了丰富的体系结构:

  1. 一个强大的交互式环境。
  2. 一个Jupyter的内核。
  3. 支持交互式数据可视化和GUI工具包的使用。
  4. 灵活、可嵌入的解释器可以加载到您自己的项目中。
  5. 易于使用、高性能的并行计算工具。
python -m ipykernel --version

如果没有安装,则安装:

python -m pip install ipykernel

2、为 Jupyter notebook 添加内核

python -m ipykernel install --user [ --name= ]

在linux系统中由于用户权限问题,不能省略 –user !

3、查看 Jupyter notebook kernel

jupyter kernelspec list

4、删除  jupyter 内核

jupyter kernelspec remove kernelname jupyter notebook

开始安装:

在终端输入下列语句,开始安装:

pip install jupyter

在终端输入下列语句,打开jupyter notebook :

 jupyter notebook

安装过程出现的问题:

在完成jupyter的安装并在浏览器打开出现不显示内核:

Python环境搭建总结-编程之家

解决办法:

  • 命令行环境中运行jupyter kernelspec list命令查看安装的kernel的位置。
  • 进入安装的kernel目录,打开kernel.json文件,查看Python解释器的路径是否正确。

首先明确起因:
卸载重装,或者之前有装过ipython,导致再次安装后,内核匹配的路径错误,没有指向新安装的位置。理论上有两种处理方法:
方法一:
手动修改路径:
1首先使用jupyter kernelspec list查看安装的内核和位置
2.进入安装内核目录打开kernel.jason文件,查看Python编译器的路径 是否正确(其实笔者的问题就是因为路径不正确导致的),修改错误的这个配置.
3.重启jupyter notebook即可

方法二:
暴力重装:
暴力的意思就是彻底重装,之前我有试过sudo pip3,sudo -H以及一些其他方法,但是没有效果。
以下方法最后解决了我的问题:

sudo pip3 install –upgrade –force-reinstall –no-cache-dir jupyter

我的kernel.json文件内容如下:

 { "argv": [
  "python",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "display_name": "Python 3",
 "language": "python"
}

文件中指出我内核的位置为:python,这个位置我应该在环境变量设置路径了,于是我便去环境变量中寻找,很遗憾我并没有设置,于是我将位置换为“C:\Users\xulei\AppData\Local\Programs\Python\Python36\python.exe”好像还是不行。

我丢,报了一个ModuleNotFoundError: No module named 'nb_conda'错误;最后卸载jupyter重新安装,问题解决。

如何在Jupyter Notebook中切换conda虚拟环境:

前面介绍了,我们在conda中创建了一个新环境tf2.0,当我们在Jupyter Notebook中想使用这个新环境tf2.0,该如何做呢?

  • 第一步:安装插件

Jupyter Notebook本身是默认使用一种Anaconda中root目录下的Python环境的,如果想使用其它的虚拟环境,还需要通过插件来实现,也就是nb_conda插件。

conda install nb_conda

安装完插件后,如果打开jupyter notebook后,在主页就会出现Conda选项卡,而没按插件之前是没有这个选项卡的。如下所示:

Python环境搭建总结-编程之家

  • 第二步:在虚拟环境中安装jupyter

这一步很关键,如果在我们安装插件后,没有在我们创建的新环境tf2.0中安装jupyter,是无法使用的。

1、进入虚拟环境

首先我们先进入虚拟环境,命令如下:

Linux&mac环境:

source activate your_env_name

Windows:

conda activate your_env_name

2、在虚拟环境中安装jupyter

命令如下:

conda install -y jupyter

安装以上命令,在每个虚拟环境中安装jupyter就可以了。

最后别忘了,重启jupyter。

Python环境搭建总结-编程之家

自此,在Jupyter Notebook中创建工程,就可以使用我们刚在conda中创建的新环境tf2.0啦。

最后,我在安装的过程中,遇到了一个问题,安装完nb_conda插件后,打开Jupyter Notebook弹出一个错误:EnvironmentLocationNotFound: Not a conda environment,不要紧张,按照下面的方法便可解决:

Python环境搭建总结-编程之家

解决方法:

找到Anaconda安装路径下nb_conda库的envmanager.py文件

win系统在目录:Anaconda3Libsite-packagesnb_condaenvmanager.py

linux系统在目录:Anaconda3/pkgs/nb_conda-2.2.1-py36_0/lib/python3.6/site-packages/nb_conda/envmanager.py

该.py文件有这样一段代码:

return {"environments": [root_env] + [get_info(env)for env in info['envs']]}

我们将此段代码改成如下:

return {"environments": [root_env] + [get_info(env) for env in info['envs'] if env != root_env['dir']]}

然后重启jupyter就可以了。

Tensorflow的安装与使用:

介绍:

Tensorflow是广泛使用的实现机器学习以及其它涉及大量数学运算的算法库之一。Tensorflow由Google开发,是GitHub上最受欢迎的机器学习库之一;Google几乎在所有应用程序中都使用Tensorflow来实现机器学习。

安装(使用清华镜像安装比较快,默认安装的是cpu版本):

pip install -i https://pypi.douban.com/simple tensorflow==1.13.1

后续继续更新……

pycharm的环境搭建:

菜单栏File ->settings下我们切换我们代码所使用的解释器,这里也可以切换成我们利用Anaconda 创建的虚拟环境,选择虚拟环境中python.exe即可:

Python环境搭建总结-编程之家

Tensorflow-gpu的安装:

  • 1. 查看电脑GPU、CUDA版本,确定安装CUDA、cuDNN、tensorflow版:

TensorFlow 有CPU 版本和 GPU 版本。GPU 版本需要 CUDA 和 cuDNN 的支持,CPU 版本不需要。

1. 检查电脑显卡配置是否支持CUDA(即最低要高于tensorflow1.0与2.0使用GPU的最小算力):

Python环境搭建总结-编程之家

Python环境搭建总结-编程之家

Tensorflow2.0要使用GPU最低算力为3.5,1.0版本的要求稍低一些;经查看我的算力为5.2,是完全可以使用GPU的。

2. 查看本机支持的最高CUDA版本号:

Windows系统查看CUDA版本号

Python环境搭建总结-编程之家

可知我的电脑最高支持的cuda版本为10.1。

3.查看当前系统cuda对应的Driver compatible:

cmd下输入nvidia-smi查看我们的驱动信息的 ,注意如果直接执行nvidia-smi是不能查看我们的驱动信息的,必须先cd到C:Program FilesNVIDIA CorporationNVSMI这个路径,并在该路径shift+鼠标右键,打开我们的命令提示窗口。从下图可以查看到432.00.

Python环境搭建总结-编程之家

4.确定不同的tensorflow-gpu版本对应的最低cuda和cudnn版本:

Python环境搭建总结-编程之家

从上表可以确定,本机是支持最高的版本是CUDA1.0.1。

5.Tensorflow不同版本要求与CUDA及CUDNN的版本对应关系:

Python环境搭建总结-编程之家

Python环境搭建总结-编程之家

 

这里我们要安装的cudnn版本为7.4,CUDA的版本为10;

  • 2.Win10中CUDA、cuDNN的安装与卸载:

link

  • 3.在Annconda中创建python环境:

从前面可知,我们要创建python3.5-3.7版本的环境,这里就创建python3.6的环境;这里我们创建了一个新的环境叫tf2.0gpu.

Python环境搭建总结-编程之家

  • 4. 在Annconda中安装tensorflow-gpu版本:

pip install -i https://pypi.douban.com/simple tensorflow-gpu==2.0.0

  • 5.测试GPU是否可用:

tf.test.is_gpu_available()

Python环境搭建总结-编程之家

打印true表示可用;至此环境都安装好了。

这篇博客会不断更新,方便日后查缺补漏,学习本就是一个滴水穿石的过程。