你在日常工作中可能会遇到这样的问题。现在基本的linux系统自带python2.7.x老版本,不想用老版本,但是直接升级可能会出问题,或者依赖老版本的程序运行不了。有没有办法安装新版本3.x?答案是肯定的,请使用pyenv,它可以支持多个python版本的管理,任意使用。其实2019年年底官方就不再提供支持了,距离倒计时还有6天:https://pythonclock.org/有人会问,那么在一个系统下,不同的库依赖不同的python版本,比如说python2.x版本需要django1.0版本,python3.x版本需要django2.0版本,所以系统只能安装一个django版本,怎么解决?答案是肯定的。pyenv自带的插件pyenv-virtualenv创建了两个相互独立、互不影响的虚拟环境。实验环境:linux系统:CentOS7x64pyenv常用命令:[python@localhost~]$pyenvinstall-l//查看可用的安装版本[python@localhost~]$pyenvinstall3.6.9//在线安装python3.6.9版本[python@localhost~]$pyenvvirtualenv3.6.9py3//创建虚拟环境,3.6.9为python版本,py3为别名[python@localhosttest]$pyenvlocal3.6.9//进入目录,设置或显示本地Python版本(此目录有效)[python@localhosttest]$pyenvglobalsystem//设置或显示全局python版本[python@localhosttest]$pyenvversion//显示当前python版本[python@localhosttest]$pyenvversions//显示所有可用的python版本[python@localhosttest]$pyenvupdate//更新pyenv[python@localhost~]$pyenvvirtualenvs//查看所有virtualenvs[python@localhost~]$rm-fr~/.pyenv//Uninstallpyenv[python@localhost~]$pyenvvirtualenv-deletepy3//删除创建的虚拟环境用户名和密码:注意:不要使用root账号,养成习惯[root@localhost~]$useraddpython[root@localhost~]$su-python[python@localhost~]$echopython|passwdpython--stdin安装依赖组件:[python@localhost~]$yuminstallgccmakepatchgdbm-developenssl-develsqlite-develreadline-develzlib-develbzip2-develgitcurlinstallpyenv:#方法一:在线安装[python@localhost~]$curl-Lhttps://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer|bash#方法二:为避免被墙限制无法在线安装,将下面链接的shell脚本复制到本地pyenv.sh:https://github.com/pyenv/pyenv-installer/blob/master/bin/pyenv-installer[python@localhost~]$touchpyenv.sh//新建一个文件,粘贴上面的shell代码,保存[python@localhost~]$bashpyenv.sh安装后完成后,按照提示设置系统环境变量,在'.bashrc'中添加如下代码:[python@localhost~]$vim.bashrc#在最下面添加如下脚本exportPATH="/home/python/.pyenv/bin:$PATH"eval"$(pyenvinit-)"eval"$(pyenvvirtualenv-init-)"重启shell使路径修改生效:[python@localhost~]$exec$SHELL提前从官网下载python安装包,通过winSCP上传到centos目录:Python-3.6.9.tar。xzPython-3.8.0.tar.xz#在已经通过winSCP上传的.pyenv目录下创建缓存目录[python@localhost~]$cd.pyenv[python@localhost.pyenv]$mkdircache[python@localhost缓存]$ll总使用量34224-rw-rw-r--。1pythonpython1721216412月15日01:56Python-3.6.9.tar.xz-rw-rw-r--。1pythonpython17829824Dec1501:57Python-3.8.0.tar.xz备注:如果直接通过'pyenvinstall3.6.9'要安装,会很慢,因为需要连接国外开始安装[python@localhostpkg]$pyenvinstall3.6.9-vvv//-v可以看到详细的安装过程[python@localhost~]$pyenvinstall3.8.0-vvv//-v可以看到安装细节创建项目文件夹的过程:#举个栗子:#1.Python目录,使用python3.6.9版本#2.My_django目录,使用python3.6.9版本#3.test目录,使用python3.8.0版本[python@localhostPython]$mkdir-pvnetwork/Python/[python@localhostPython]$mkdir-pvnetwork/My_django/[python@localhostPython]$mkdir-pvnetwork/test/创建虚拟环境,效果如下如下:#Python目录:[python@localhost~]$pyenvvirtualenv3.6.9py3//设置别名py3[python@localhostPython]$pyenvlocalpy3(py3)[python@localhostPython]$pyenvversionpy3(setby/home/python/network/Python/.python-version)(py3)[python@localhostPython]$//(py3)左边说明已经在虚拟环境中了,是独立的#My_djangodirectory:[python@localhost~]$pyenvvirtualenv3.6.9py369//设置别名py369[python@localhostMy_django]$pyenvlocalpy369(py369)[python@localhostMy_django]$pyenvversionpy369(setby/home/python/network/My_django/.python-version)(py369)[python@localhostMy_django]$#测试目录:[python@localhost~]$pyenvvirtualenv3.8.0py380//设置别名py380[python@localhosttest]$pyenvlocalpy380(py380)[python@localhosttest]$pyenvversionpy380(setby/home/python/network/test/.python-version)(py380)[python@localhosttest]$#验证效果#在My_django虚拟环境下安装pipinstallredis#其他虚拟目录没有redis#My_django虚拟环境(py369)[python@localhostMy_django]$piplistPackageVersion------------------pip19.3.1redis3.3.11setuptools40.6.2#Python虚拟环境[python@localhostPython]$piplistPackageVersion------------------pip19.2.3setuptools41.2.0说明:您可以在每个项目中安装所需的软件版本,它们是独立的,互不影响。pyenv官方链接如果喜欢我的文章,欢迎关注我的公众号:点点滴滴的技术,扫码关注,不定时分享
