版本隔离pyenv
安装
# pyenv安装使用git
yum -y install git
# python安装依赖
yum -y install gcc make patch gdbm-devel openssl-devel readline-devel zlib-devel bzip2-devel
# 创建用户(如果需要可以添加密码passwd)
useradd python
# 切换到python用户(在python用户环境下做)
su python
# 通过网络安装pyenv(他下载的是一个pyenv-installer脚本,通过bash去运行去了,下载不下来登陆不上git,两种下载方式互相换一下,多试试)
curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
# 安装完毕后,会有提示将一下变量保存到那个文件中去
# Load pyenv automatically by adding
# the following to ~/.bashrc:
export PATH="/root/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
# 重新加载一下文件
. .bashrc
# 直接输出帮助
pyenv
install Install a Python version using python-build(使用python-build安装Python版本)
version Show the current Python version(s) and its origin(显示当前的Python版本及其来源)
versions List all Python versions available to pyenv(列出pyenv可用的所有Python版本,pyenv当前管理的多少个python版本,包括虚拟环境版本)
local Set or show the local application-specific Python version(s)(设置或显示本地特定于应用程序的Python版本)
global Set or show the global Python version(s)(设置或显示全局Python版本)
shell Set or show the shell-specific Python version(设置或显示特定于外壳的Python版本)
# 查看pyenv install的帮助
pyenv help install
-l/--list List all available versions(列出所有可用版本,查看pyenv给你提供的各种各样的python)
# 安装python指定版本(如果下载不下来,就使用手动的方式添加程序包)
pyenv install 3.5.3
或(加-v显示安装详情)
pyenv install 3.5.3 -v
/tmp/python-build.20210305214024.6338 ~(可以看到在tmp上建立了一个临时目录之后,他从服务器上把相应的版本的文件给你拽回来,下载几次他产生几个目录,在每一个临时目录里面,他都会有下载的那个包,然后本地解压之后,然后开始编译,这个加载过程可能是比较慢的,我们有一个解决方案,他有一个本地缓存的方式)
# 查看是否有cacha目录,如果没有进行创建,创建完目录后,后面的过程很简单,把你下载好的包丢进去就ok了,尽量把3种类型的压缩包都给他gz,xz,tgz,他有可能下载其中一种,如果你给的不是他下载的压缩类型的包,他会一直下载,解决方案很简单,三种包都给他
cd .pyenv/
mkdir cache
使用pyenv(建议使用local)
# 设置全局python版本(一般来说global是禁用的,避免全部切换版本照成之前的程序不能使用)
pyenv global 3.5.3
# 查看是否切换版本
pyenv versions
# 切换会之前的版本
pyenv global system
#################################
# 设置当前shell的python版本(会话级的,只生效当前shell,关闭shell重新打开就没有了,也不好用)
pyenv shell 3.5.3
# 查看是否切换版本
pyenv versions
#################################
# 创建文件夹,自己的工程创建一个文件夹,跟别人不相干
mkdir pythonedu/projects -p
cd pythonedu/projects
# local表示当前文件夹与当前环境捆在一起,做这样的事情更好一点
pyenv local 3.5.3
# 查看是否切换版本(只生效与当前目录和子目录(会继承),换个目录python版本就不一样了)
pyenv versions
或
python3 -V
Virtualenv(虚拟环境)
这是一个插件,建立一个独立的空间,在里面爱干什么干什么,原意装什么包装什么包,跟别人不相干,这样大家统一的3.5.3的包安装路径里面干干净净,我们自己用了3.5.3,但是我们包管理这边是独立的,这样我们项目用什么包自己管理就行了,他就做这样的事,包隔离
# 查看已安装包所在的目录(以后创建的某个版本创建出的虚拟环境是在这个目录下的)
ls ~/.pyenv/versions/
pip包管理器
# 查看包管理器版本
pip -V
或pip3 -V