Python学习笔记(一)之 多版本共存管理工具 Pyenv安装
目录
最近开始学习Python,所以写点博客记录一下学习笔记,欢迎各位指点。
学习Python肯本避免不了Python环境的搭建,这里呢我们使用简单方便的Pyenv工具进行安装部署Python,也避免系统Python环境与自己所需求的Python环境造成冲突
当我们需要在系统中安装多个 Python,但又不能影响系统自带的 Python,即需要实现 Python 的多版本共存,而pyenv作为一个 Python 多版本管理工具在这时便可以满足我们的需求。
一、环境准备
VMware14、Centos7镜像以及一个远程连接工具(XShell、CRT都可以)
Linux虚拟机环境可以仿照下面两篇博客进行配置
二、安装 Python 多版本共存管理工具
1. 安装 Python 的依赖包
在编译安装 Python 过程中会依赖一些其他库文件,因此需要首先安装这些库文件:
[[email protected] ~]# yum install git -y
[[email protected] ~]# yum -y install gcc make patch gdbm-devel openssl-devel sqlite-devel readline-devel zlib-devel bzip2-devel bzip2
2. 下载并执行 Pyenv安装脚本
[[email protected] ~]# curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer >> zhangpy.sh
[[email protected] ~]# chmod +x zhangpy.sh
[[email protected] ~]# source zhangpy.sh
Cloning into '/root/.pyenv'...
remote: Enumerating objects: 631, done.
remote: Counting objects: 100% (631/631), done.
remote: Compressing objects: 100% (440/440), done.
remote: Total 631 (delta 299), reused 283 (delta 99), pack-reused 0
Receiving objects: 100% (631/631), 365.67 KiB | 26.00 KiB/s, done.
Resolving deltas: 100% (299/299), done.
Cloning into '/root/.pyenv/plugins/pyenv-doctor'...
remote: Enumerating objects: 11, done.
remote: Counting objects: 100% (11/11), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 11 (delta 1), reused 4 (delta 0), pack-reused 0
Unpacking objects: 100% (11/11), done.
Cloning into '/root/.pyenv/plugins/pyenv-installer'...
remote: Enumerating objects: 16, done.
remote: Counting objects: 100% (16/16), done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 16 (delta 1), reused 7 (delta 0), pack-reused 0
Unpacking objects: 100% (16/16), done.
Cloning into '/root/.pyenv/plugins/pyenv-update'...
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 10 (delta 1), reused 6 (delta 0), pack-reused 0
Unpacking objects: 100% (10/10), done.
Cloning into '/root/.pyenv/plugins/pyenv-virtualenv'...
remote: Enumerating objects: 57, done.
remote: Counting objects: 100% (57/57), done.
remote: Compressing objects: 100% (51/51), done.
remote: Total 57 (delta 11), reused 21 (delta 0), pack-reused 0
Unpacking objects: 100% (57/57), done.
Cloning into '/root/.pyenv/plugins/pyenv-which-ext'...
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 10 (delta 1), reused 6 (delta 0), pack-reused 0
Unpacking objects: 100% (10/10), done.
WARNING: seems you still have not added 'pyenv' to the load path.
# Load pyenv automatically by adding
# the following to your profile:
export PATH="/root/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
3. 添加 Python环境变量
注:需注释 export PATH
[[email protected] ~]# vi ~/.bash_profile
export PATH="/root/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
#export PATH
[[email protected] ~]# source ~/.bash_profile
三、安装指定版本 Python
1. 建立一个python环境缓存目录
[[email protected] ~]# mkdir ~/.pyenv/cache
2. 选择Python版本并安装
注:这里可以选择安装 anaconda3-4.1.0 版本的Python,这是一个专为科学计算准备的发行版
#列出可以用 pyenv 安装的 Python 版本
[[email protected] ~]# pyenv install --list t
#获取需要脚本的链接
[[email protected] ~]# pyenv install anaconda3-4.1.0 -v
Downloading Anaconda3-4.1.0-Linux-x86_64.sh...
/tmp/python-build.20190310145018.32331 ~
-> https://repo.continuum.io/archive/Anaconda3-4.1.0-Linux-x86_64.sh
^Cerror: failed to download Anaconda3-4.1.0-Linux-x86_64.sh
BUILD FAILED (CentOS Linux 7 using python-build 20180424)
/root/.pyenv/plugins/python-build/bin/python-build: line 1: kill: (32365) - No such process
[[email protected] ~]# curl -O https://repo.continuum.io/archive/Anaconda3-4.1.0-Linux-x86_64.sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 404M 100 404M 0 0 3486k 0 0:01:58 0:01:58 --:--:-- 4551k
[[email protected] ~]# ls
Anaconda3-4.1.0-Linux-x86_64.sh anaconda-ks.cfg zhangpy.sh
#将安装包移动至刚刚新建的cache目录
[[email protected] ~]$ mv Anaconda3-4.1.0-Linux-x86_64.sh ~/.pyenv/cache/
#该命令会检查 cache 目录下已有文件的完整性,若确认无误,则会直接使用该安装文件进行安装。
#安装过程中,若出现编译错误,通常是由于依赖包未满足,需要在安装依赖包后重新执行该命令。
[[email protected] ~]# pyenv install anaconda3-4.1.0 -v
3. 更新数据库并检查安装是否成功
#在安装 Python 或者其他带有可执行文件的模块之后,需要对数据库进行更新:
[[email protected] ~]# pyenv rehash
#查看当前已安装的 python 版本
#其中的星号表示当前正在使用的是系统自带的 python
[[email protected] ~]# pyenv versions
* system (set by /root/.pyenv/version)
anaconda3-4.1.0
#查看系统自带的python版本
[[email protected] ~]# python -V
Python 2.7.5
#切换 Python使用环境
[[email protected] ~]# pyenv global anaconda3-4.1.0
(anaconda3-4.1.0) [[email protected] ~]# python -V
Python 3.5.1 :: Anaconda 4.1.0 (64-bit)
(anaconda3-4.1.0) [[email protected] ~]# python
Python 3.5.1 |Anaconda 4.1.0 (64-bit)| (default, Jun 15 2016, 15:32:45)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
注:当前全局 Python 版本已经变成了 anaconda3-4.1.0 ,你也可以使用 pyenv local 或 pyenv shell 临时改变 Python 版本。
四、pyen 命令扩展
1. pyenv uninstall
卸载某个 Python环境版本
2. pyenv update
更新 pyenv 及其插件
pyenv参考:https://github.com/yyuu/pyenv