一、安装管理工具Pyenv
Pyenv是Python多版本管理工具,由于Python2和Python3差异较大;而且公司大多Server自带的都是Python2.6或者Python2.7,当需要Python3环境的时候,如果直接卸载Python2,重装Python3,又会导致很多系统功能无法使用(例如Yum等);最好的情况就是使用Pyenv来进行多版本控制;
Pyenv的安装,如果Server可以连外网的情况下,自然很方便
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
exec $SHELL -l
但是公司Server一般无法连接外网;网上有很多离线安装脚本,要下载好几样,然后打包,使用安装脚本进行,我试了下总是报错;可能姿势不对;搞了一天才搞完
最后使用源文件方式安装成功,下面仅做记录和分享,以备以后查看
Step1:下载pyenv: Latest version,下载地址:https://github.com/pyenv/pyenv/releases/ 本次使用版本为pyenv-2.3.12.tar.gz 解压后重命名为:pyenv
Step2:将目录移动到/usr/local/
node-1 ~]# ls /usr/local/pyenv
bin CHANGELOG.md completions Dockerfile LICENSE man pyenv.d shims terminal_output.png versions
cache COMMANDS.md CONDUCT.md libexec Makefile plugins README.md src test
Step3:配置环境变量
echo 'export PYENV_ROOT="/usr/local/pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
Step4, 重新登陆后验证
pyenv]# pyenv --version
pyenv 2.3.12
二、离线安装特定python版本(以3.8.13版本为例)
在python安装前需首先安装运行所需依赖包,在配置yum源的系统中执行如下语句
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
Step1, 列出可安装的python版本pyenv install -l
例如我想安装: python 3.8.13版本,执行: pyenv install 3.8.13 ,由于在内网环境,会提示访问失败,但是可以根据这个获取到下载地址 https://www.python.org/ftp/python/3.8.13/Python-3.8.13.tar.xz
Step2: 将Python-3.8.13.tar.xz下载后放到pyenv/cache目录下;
再次执行安装pyenv install 3.8.13 即可,若出现如下异常,可能是缺少关键依赖导致编译安装失败,则需根据提示查看编译失败原因。
若执行结果如下则表示安装成功
Step3: 验证已安装Python
pyenv]# pyenv versions
* system (set by /usr/local/pyenv/version)
3.8.13
若需要安装其他版本则替换需安装的源码包即可
其他命令参考:
卸载python
pyenv uninstall 3.8.13
查看pyenv版本
pyenv --version
查看当前python版本
pyenv versions
查看当前使用的版本(system 代表当前系统的python 版本)
pyenv version
切换python版本
pyenv global 3.8.13
常见问题及解决方案:
在使用pyenv install安装python,可能会比较慢,甚至下载安装不成功
<1>.这时最好使用是下载好python源码包,然后通过pyenv进行安装(可以下载到境外云服务器)
<2>.将python源码包放置在~/.pyenv/cache/目录中(不要解压 ; 如没有cache就创建一个)
<3>.执行pyenv install 3.8.13