属于自己的贾维斯之Python学习
人生第一次写博客,想记录下自己的学习过程,以便以后复习简单(毕竟自己的博客总想知道有没有人来看,就可以顺便过来复习了),因为用笔的记录感觉都没怎么去看,所以就想用这种方法来记录。因为本人比较懒再加上精神容易分散,配个Linux下的环境用了两天,惭愧不如,以后认真学习加油!!!
(一)Python在Linux下的环境配置
一.首先得有一个Linux系统
感觉在废话,不过如果纯粹作为Python的学习你可以只安装个最小系统,什么界面都不需要不过之前我在学习Linux的一些基础命令时,就已经安装了一个Centos7。
二.安装Pyenv
简介:这是一个在Unix/Linux下可以管理多个Python版本的工具,在现实中一个公司有很多项目需要用到不同版本的Python,这个时候有人就会问:“为什么不统一一个版本的Python”?首先一个项目从开始到结束会浪费很多人力物力财力,如果随随便便换版本可能会牵一发而动全身,可能会延伸出很多的Bug,所以一般老项目用老版本维护,新项目用新版本做。所以正因为如此才突显Pyenv的重要性。
1、安装 git
因为这个Pyenv是来自GitHub的一个开源项目,所以,等会安装是从GitHub在线安装,安装Git的命令
#yum install git -y
yum我配置了两个源,一个是本地光盘,另一个是来自阿里云的源
虽说之前学习Linux,但我只是学习一些命令的使用,这里面的配置是网上的资料的,以后要掌握,现在在这里做个标记(未掌握)
2、安装Python的编译依赖
已经配置好了yum,所以我们直接从yum安装就行了使用下列命令
yum -y install gcc make patch gdbm-devel openssl-devel sqlite-devel readline-devel zlib-devel bzip2-devel
分别安装了gcc编译器,make这是编译makefile文件的,以及两个压缩软件,剩下的不了解(未学习)
3、安装Pyenv
安装之前请注意:最好不要用root用户的安装,原因后面会讲
这里我已经创建了一个普通用户,大家可以自行创建,然后切换到这个普通用户,并到这个用户的家目录,然后执行下面这个命令
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenvinstaller | bash
然后执行这个会出现一些问题
curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused会出现这么一句话,通过查找资料知道,GitHub的一些域名被污染了然后被墙了,通过查阅这篇文章,链接放在下面,就可以解决这个方法
原文链接:https://www.jianshu.com/p/c2e829027b0a
也有可能会碰到这个问题
curl: (35) SSL connect error
这个问题表示你的nss版本太低,只要升一下级就可以了,执行下面这个命令
yum update nss
然后再重新执行
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenvinstaller | bash
安装完成的话最下面三行会有个提示
export PATH="/home/python/.pyenv/bin:$PATH"
eval “$(pyenv init -)”
eval “$(pyenv virtualenv-init -)”
当前用户的家目录下有个.bash_profile的文件,把这三句话追加到这个文件里,然后执行
. ./.bash_profile或source ./.bash_profile
这是为了让配置生效,重启或者重新登录也可以,至此pyenv安装完毕执行下面这个命令
$ pyenv -v
pyenv 1.2.19
就会显示pyenv的版本号。
三、安装Python3.5.3
执行python -V,就会知道当前这个Linux的Python版本
$ python -V
Python 2.7.5
不过很多库都逐渐不支持python2了,逐渐转向python3,所以我们安装python3.5.3,虽然这个版本在2020年也不是最新的,但因为教学环境是这个环境,加上我是小白,得跟着教学来,执行下面这个命令
$ pyenv -h
划红线是我们要安装Python版本的命令,我们执行一下看看
$ pyenv install
划红线这个参数,看后面的描述我们可以知道,加上这个参数可以列出可以安装的版本,执行一下
$ pyenv install -l
这里就不一一列举了,然后执行
$pyenv install 3.5.3
就会在线下载Python版本并自动安装,安装完成执行这个命令就可以看到可以选择的Python版本
pyenv versions
*表示选到的Python版本,目前指向系统版本,然后怎么选择版本呢
请看上面划红线的参数后面的描述,可以知道这三个是设置Python版本的,不过三个变量的作用区域是有区别的
global:这个是全局设置的,意思是通过此变量可以将版本作用到全局,因为我们是使用普通用户,所以只能作用于当前用户,所以知道为什么不用root安装Pyenv了吧,因为如果用pyenv安装,用这个变量设置那涉及的范围得多广,可能会影响到服务器上其他的python项目执行的环境,所以一般不用这个设置.
local:这个是设置将python版本作用于当前工作目录以及它的子目录;
shell:这个是设置将python版本作用于当前会话,也就是说一关机就没了。
而这些参数的使用
$ pyenv 三个参数之一 python版本
就可以了,然后你在重新执行 pyenv versions,你会发现星号跑到别的地方去了
四、设置虚拟环境
为什么要设置虚拟环境,前面有提到过一个公司可能会跑不同版本的Python,那么做Python项目的肯定会用很多不同的库,不同版本的Python支持的库可能会冲突或者同版本不同的库也会起冲突等等,那么为了避免出现这些问题,就要使不同的项目拥有一个属于自己环境,并且这个环境是在大环境之下的但是是独立的小环境。
怎么建立呢?这就是pyenv的好处了,它有一个插件Virtualenv,通过这个插件,就可以创建对应Python版本的虚拟环境,我们来执行一下
$ pyenv virtualenv 3.5.3 vir3.5.3
然后就可以创建vir3.5.3这样一个虚拟环境
如图我们已经创建成功了,并且我们可以发现有两个东西3.5.3/envs/vir3.5.3和vir3.5.3,这两个其实是同一个东西,并且后者通过软链接指向前者,那为什么说它可以独立开来呢?看图
第一张图是3.5.3在做项目时加载的库都会放这里,下面是它的路径,然后我们再看看虚拟出来的
如图,在不同的路径出现同一个东西,这就是虚拟环境加载库时存放库的地方,这也是为什么它能独立出来的原因,然后在项目的文件夹执行那个选版本参数的命令,我们选择虚拟环境
在[]前面多了(vir3.5.3)这个表示这个文件夹及其子目录下都将处于这个环境,即使我们退出这个目录,它也不会影响其它目录.虚拟环境搞定!!!
五、pip的通用配置以及ipython和jupyter的安装
1、pip的配置
pip是python3.x自带的一个管理包的工具,通过它可以加载我们所需要的库文件,用它就像用yum一样。
首先在家目录建一个.pip的隐藏文件夹,在这个文件夹下在建立一个pip.conf的文件,然后在这个.conf文件下上写上
[global]
index-url=https://mirrors.aliyun.com/pypi/simple/
trusted-host=mirrors.aliyun.com
(待学习)
然后到那个虚拟环境下执行pip -v就可以看到效果了,为什么要到那里呢?因为在主目录我没有设置版本号为3.5.3,默认是2.x的所以使用不了这个命令,但并无大碍。
2、ipython的安装
ipython 是增强的交互式Python命令行工具,我们只要执行下面命令
$ pip install ipython
执行完就可以看安装过程了然后再执行ipython,如果有如图反应,表明安装成功
3、jupyter的安装
Jupyter 是基于WEB的交互式笔记本,其中可以非常方便的使用Python。 安装Jupyter,也会安装ipython的.
执行命令,就可以看到安装过程
$ pip install jupyter
然后执行
$ jupyter notebook help
看图,第三条命令是设置密码的,以方便用户通过浏览器访问是通过输入密码就可以进入了;第一条命令是启动notebook的,密码就自行设置了。
接下来就是如何访问jupyter的notebook了首先我们先启动
$ jupyter notebook
启动完就可以看到下面的图,但是请看红线部分,这个表示是本地回环,所以外界是无法访问notebook,也就是我们无法从虚拟机外的浏览器访问
通过命令jupyter 的帮助看到有个参数 ip,这个参数可以指定特定ip来访问jupyter,所以我们可以执行下面的命令
jupyter notebook --ip=0.0.0.0
这样就可以了,0.0.0.0这个是全网的ip也就是所有的主机都可以访问,然后我们再查看虚拟机的ip,然后在windows的浏览器上输入ip:8888就可以访问了,对了记得关闭虚拟机的防火墙哦,不然也访问不了如图是访问成功的画面
至此Linux下的Python环境配置完毕
六、总结
从无到有,一步步配置好python的环境我感觉非常的开心,但由于自己的懒惰以及身体的不适,才把可以一天搞定的东西用了两天,导致学习效率大大降低,所以要认真了,加油,希望我可以坚持,并且坚持每天写博客,并且成功做出属于自己的贾维斯!!!(码字不易,如果有需要改进的地方或有错的地方请大佬指点迷津谢谢!!!)