一、背景
两年前写过一篇在CentOS7环境部署Python3的笔记文章,两年后CentOS即将不再免费支持,公司后续新环境即将拥抱新的Linux版本,我这里分配到了一个Rocky Linux服务器用于部署新的服务,这里也更新下部署Python3环境的方式,可以说算是这两年来,自己总结的最佳实践。
二、经验总结
经过多年的经验就会发现,生产项目是历史部署的,可能是个比较老旧的版本(Python3.6),而自己在本机很方便的追求新版特性,写代码可能用一个较新新的Python版本3.10或者3.11,再次用那种从官网下载一个固定版本去Linux里编译的方式对自己就很不友好了,于是想到用版本管理工具:pyenv,很方便的就能安装自己需要的任意Python版本到服务器,还能随意切换版本
这里不考虑谁是最好的版本管理工具,市面上太多了,venv、pipenv、conda、pyenv等等……
这里我不再赘述怎么去安装部署pyenv,然后再pyenv install 3.10.13等等,网上一搜一大把;
我要记录的是如何在服务器里安装pyenv里的插件,在服务器里好像没法使用官方的自动部署bash,只能是一个一个插件安装
三、内心活动
没有仔细追过pyenv的历史,大概是在2022年左右发现pyenv可以update了,不像之前要么使用brew去更新,要么自己下载GitHub的压缩包去手动更新。
但是服务器链接GitHub总是timeout,生产环境,国内,dddd,只能自己在本地搞到pyenv的压缩包,然后上传到服务器,再通过相同的方式,把需要的插件一个一个都安装到pyenv的plugins目录下,但是自己搞了很久发现pyenv都没法操作update,提示改命令不存在……
自己傻了半天,上网搜索发现全网都没有教你怎么能让pyenv能去执行update命令,现在想想应该是大家都能执行一键部署的那个bash吧。
curl https://pyenv.run | bash
后来,还是自己从一键部署的bash内容发现update也是一个插件🥲哈哈,好尴尬呀(从来没有想到自己也会去研究源码,潜意识会觉得源码好难)
pyenv一旦安装好,Python环境部署不是一般的方便呀哈哈哈
四、发现过程
先找到GitHub里提示自动安装的项目,点进bash的具体内容
然后就发现人家主页就包含了我想要的答案(pyenv怎么能执行update命令)
最后,就是挨个下载插件项目,解压到服务器里指定的插件目录,配置好pyenv的环境变量,申请短暂的联网(一般只申请Python、pip的网络权限)赶紧把需要的Python版本install好
服务器里在没有魔法的前提下,GitHub很不稳定,执行多次才能连通