一、简单概念:
1、pyenv:Python多版本管理工具,可以管理Python解释器、可以管理Python版本,也可以管理Python的虚拟环境,官网https://github.com/pyenv。
2、虚拟环境:默认使用的Python环境是一个公共环境,如果多个项目使用不同Python版本开发、部署和运行,或使用相同Python版本开发但不同项目使用了不同版本的库,都会带来冲突,最好的解决办法就是每一个项目独立运行于属于它自己的环境中。在虚拟环境中安装的软件包与公共环境隔离,虚拟环境中的软件包只在虚拟环境中有效,在公共环境中安装的软件包在虚拟环境中也不可见。
3、pip:Python的包管理工具,3.x版本中已自带,可以直接使用。
4、ipython:增强的交互式Python命令行工具,支持变量自动补全、自动缩进、支持shell,增加了很多函数。
5、jupyter:基于Web的交互式笔记本,可以非常方便地使用Python,支持实时代码、数学方程、可视化和markdown。安装jupyter时也会自动安装ipython。
二、 安装使用pyenv:
1、查看系统版本和自带Python版本:
# cat /etc/centos-release# python -V2、安装pyenv:
(1)安装git:
# yum -y install git(2)安装pyenv依赖软件包:
# yum -y install gcc make patch gdbm-devel openssl-devel sqlite-devel readline-devel zlib-devel bzip2-devel libffi-devel说明:软件包libffi-devel需要安装,否则使用jupyter时会提示“ModuleNotFoundError: No module named '_ctypes'”。
(3)配置git clone加速:
a、查询github.com和github.global.ssl.fastly.net域名所对应的IP:
# yum -y install bind-utils# nslookup github.com# nslookup github.global.ssl.fastly.net
说明:git clone慢是因为github.global.ssl.fastly.net域名被限制了
b、修改hosts文件:
CentOS:/etc/hosts
Windows:C:\Windows\System32\drivers\etc\hosts
末尾新增如下两行代码:
20.205.243.166 github.com31.13.95.37 github.global.ssl.fastly.net
c、刷新DNS缓存:
CentOS:
# yum -y install nscd# nscd -i hosts
Windows:CMD下执行ipconfig /flushdns
(4)创建用户:
# useradd python(5)使用python用户身份安装pyenv:
# su - python方法一:通过pyenv-installer脚本安装
$ curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash方法二:单独git clone所需组件(此次演示安装方式)
$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv$ git clone https://github.com/pyenv/pyenv-doctor.git ~/.pyenv/plugins/pyenv-doctor$ git clone https://github.com/pyenv/pyenv-installer.git ~/.pyenv/plugins/pyenv-installer$ git clone https://github.com/pyenv/pyenv-update.git ~/.pyenv/plugins/pyenv-update$ git clone https://github.com/pyenv/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv$ git clone https://github.com/pyenv/pyenv-which-ext.git ~/.pyenv/plugins/pyenv-which-ext(6)配置python用户环境变量:配置python用户环境变量:
$ vim ~/.bash_profile新增如下三行代码:
export PATH="/home/python/.pyenv/bin:$PATH"eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"$ . ~/.bash_profile
$ echo $PATH$ ls ~/.pyenv/$ ls ~/.pyenv/plugins$ ls ~/.pyenv/versions
说明:
a、安装后的pyenv在~/.pyenv目录下
b、更新pyenv:
$ pyenv updatec、删除pyenv:
$ rm -rf ~/.pyenv$ vim ~/.bash_profile
删除如下三行代码:
export PATH="/home/python/.pyenv/bin:$PATH"eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"$ . ~/.bash_profile
3、使用pyenv安装指定Python版本:
(1)查看pyenv命令使用信息:
$ pyenv命令参考:https://github.com/pyenv/pyenv/blob/master/COMMANDS.md
(2)查看安装帮助信息:
$ pyenv help install(3)查看所有可安装Python版本:
$ pyenv install -l(4)在线方式安装3.7.13版本:
$ pyenv install 3.7.13说明:在线方式安装Python不推荐,速度较慢。
(5)缓存方式安装3.7.13版本:
$ mkdir -pv ~/.pyenv/cache$ cd ~/.pyenv/cache
将安装过程中会用到的Python-3.7.13.tar.xz上传至cache目录
$ pyenv install 3.7.13$ pyenv rehash(6)缓存方式安装3.9.12版本:
将安装过程中会用到的Python-3.9.12.tar.xz上传至cache目录
$ pyenv install 3.9.12$ pyenv rehash(7)查看当前Python版本:
$ python -V$ pyenv version(8)查看所有可用Python版本和当前Python版本:
$ pyenv versions4、设置Python版本的三种方式:
(1)global:全局设置(不推荐)
$ pyenv global 3.7.13$ python -V$ pyenv version$ pyenv versions
(2)shell:会话设置,只作用于当前shell,退出当前shell后失效,新开shell不受影响(不推荐)
$ pyenv shell system$ pyenv versions
(3)local:本地设置,当前目录开始向下递归继承此设置,父目录和同级目录不受影响,新开shell对应目录也受影响(推荐)
$ mkdir -pv ~/projects/db/mysql$ cd projects/db
$ pyenv local 3.9.12
$ pyenv versions
说明:当前设置的shell需要退出后重新登录,或打开新的shell查看设置效果。
5、创建3.7.13版本的虚拟环境:
$ mkdir -pv ~/projects/web/nginx$ cd projects/web
$ pyenv versions$ pyenv virtualenv 3.7.13 py3.7.13$ pyenv versions$ pyenv local py3.7.13
说明:进入虚拟环境后会有提示符显示。
$ pyenv versions$ ls ~/.pyenv/versions说明:已安装的Python版本。
三、使用pip:
1、配置pip阿里云源:
(1)CentOS:
$ mkdir -pv ~/.pip$ vim ~/.pip/pip.conf[global]
index-url=https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
(2)Windows:
a、文件夹地址栏输入%APPDATA%后回车,快速进入C:\Users\Marion\AppData\Roaming目录
b、创建pip目录,并在pip目录下创建pip.ini配置文件
c、编辑pip.ini配置文件内容:
[global]index-url=https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
配置前下载速度:
配置后下载速度:
2、升级pip:
(1)CentOS:
$ pip install --upgrade pip$ pip -V
(2)Windows:
a、以管理员身份运行CMD:pip install --upgrade pip
b、报错后先执行:python -m ensurepip
c、再执行:python -m pip install --upgrade pip
d、查看升级后的pip版本:pip -V
3、公共环境中使用pip安装redis:
(1)查看pip命令使用信息:
$ pip(2)查看安装帮助信息:
$ pip help install(3)安装redis:
$ pip install redis说明:由于是在3.7.13公共环境中安装的redis,所以redis及其依赖软件包安装在公共环境的site-packages目录下,不在虚拟环境中。只有创建了虚拟环境,才会有envs目录。
- 公共环境软件包安装位置:~/.pyenv/versions/3.7.13/lib/python3.7/site-packages/
- 虚拟环境软件包安装位置:~/.pyenv/versions/3.7.13/envs/py3.7.13/lib/python3.7/site-packages/
4、虚拟环境中使用pip安装ipython:
(1)安装ipython:
$ cd /home/python/projects/web$ pip install ipython
(2)使用ipython:
$ ipython说明:只能在虚拟环境中使用ipython。
5、虚拟环境中使用pip安装jupyter:
(1)安装jupyter:
$ cd /home/python/projects/web$ pip install jupyter
(2)使用jupyter:
$ jupyter$ jupyter notebook help$ jupyter notebook password
说明:密码123456。
$ jupyter notebook --ip=192.168.0.200 --port=8888 --no-browser新开个shell:
# ss -tunlp | grep 8888浏览器打开:192.168.0.200:8888,输入刚才设置的密码123456
点击“Log in”:
显示当前工作路径,在此路径下创建test.py:
shift+回车输出结果:
6、创建3.9.12虚拟环境,将3.7.13虚拟环境中已安装的软件包安装至3.9.12的虚拟环境中:
(1)创建3.9.12虚拟环境:
$ pyenv virtualenv 3.9.12 py3.9.12(2)配置Python版本:
$ cd ~/projects/db$ pyenv local py3.9.12
(3)查看3.9.12虚拟环境中默认安装软件包:
$ pip list$ ls ~/.pyenv/versions/3.9.12/envs/py3.9.12/lib/python3.9/site-packages/(4)查看3.7.13虚拟环境中已安装的软件包:
$ cd ~/projects/web$ pip list$ pip freeze > /tmp/packages.txt
$ cat /tmp/packages.txt
(5)3.9.12虚拟环境安装软件包:
$ cd ~/projects/db$ pip install -r /tmp/packages.txt
(6)查看3.9.12虚拟环境中已安装的软件包:
$ pip list$ ls ~/.pyenv/versions/3.9.12/envs/py3.9.12/lib/python3.9/site-packages/