Python/GoLang/Java 多环境管理工具 pyenv/goenv/jenv

目录

一、Python多环境

安装

bash 复制代码
git clone https://gitee.com/tekintian/pyenv.git /opt/env/pyenv

MacOS修改~/.zshrc,Linux修改~/.bashrc,追加以下内容:

shell 复制代码
export PYENV_ROOT="/opt/env/pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

使配置生效:

bash 复制代码
source ~/.zshrc

使用

pyenv公共环境

bash 复制代码
pyenv install -l     # 查看可安装的版本
pyenv install 3.9    # 安装python3.9,会自动具体到小版本号,即3.9.19
pyenv uninstall 3.9  # 卸载
pyenv versions       # 查看已有版本
pyenv global 3.9     # 指定全局默认的python版本
pyenv local 3        # 指定当前用户生效的python版本,只写3会自动具体到已安装的python 3.x.x
pyenv shell 3        # 指定当前终端生效的python版本,终端关掉就失效了
pyenv shell --unset  # 取消
pyenv rehash         # 重建环境变量,每增删 Python 版本或带有可执行文件的包(如 pip)以后,都应该执行一次本命令

pyenv版本管理的原理是将python版本保存于$PYENV_ROOT/versions/文件夹下,然后通过$PYENV_ROOT/version文件指定全局版本,通过~/.python-version文件指定当前用户版本。

如果希望系统自带版本也能被pyenv管理,可以将系统python软链接到pyenv版本库:

bash 复制代码
ln -s /System/Library/Frameworks/Python.framework/Versions/2.7 $PYENV_ROOT/versions/system

【高级用法】一次指定多个python版本

bash 复制代码
pyenv shell 2 3.9      # 同时指定两个版本,首个将作为默认
python --version       # Python 2.7.18
python2 --version      # Python 2.7.18
python2.7 --version    # Python 2.7.18
python2.7.18 --version # Python 2.7.18
python3 --version      # Python 3.9.19
python3.9 --version    # Python 3.9.19

pyenv虚拟环境

使用独立的虚拟环境,可以不影响全局环境。 原生pyenv不支持虚拟环境,需要额外安装依赖:

bash 复制代码
git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv

随后pyenv命令就支持创建虚拟环境了:

bash 复制代码
pyenv virtualenv 3.9 testenv  # 创建名为testenv的虚拟环境,python版本3.9必须是已存在的
pyenv activate testenv   # 激活虚拟环境,终端用户名前出现 (testenv) 表明已进入虚拟环境
pyenv deactivate         # 退出虚拟环境
pyenv uninstall testenv  # 删除虚拟环境

执行 pyenv virtualenvs 可以看到所有虚拟环境:

bash 复制代码
root@Winterant Projects % pyenv virtualenvs
  3.9.19/envs/testenv (created from /opt/env/pyenv/versions/3.9.19)
  testenv (created from /opt/env/pyenv/versions/3.9.19)

执行 pyenv versions 可以看到虚拟环境也被收录到版本管理中:

text 复制代码
root@Winterant Projects % pyenv versions
  system
  2.7.18
* 3.9.19 (set by /opt/env/pyenv/version)
  3.9.19/envs/testenv
  testenv --> /opt/env/pyenv/versions/3.9.19/envs/testenv

二、GoLang多环境goenv

安装

bash 复制代码
git clone https://github.com/syndbg/goenv.git /opt/env/goenv

MacOS修改~/.zshrc,Linux修改~/.bashrc,追加以下内容:

shell 复制代码
export GOENV_ROOT="/opt/env/goenv"
export PATH="$GOENV_ROOT/bin:$PATH"
eval "$(goenv init -)"

使配置生效:

bash 复制代码
source ~/.zshrc

使用

与pyenv一模一样的套路。

bash 复制代码
goenv install -l       # 列出所有版本
goenv install 1.21     # 安装指定版本
goenv uninstall 1.21   # 卸载指定版本
goenv versions         # 查看已有版本
goenv global 1.21      # 指定全局默认的go版本,记录于$GOENV_ROOT/version
goenv local 1.21       # 为当前用户设置go版本,记录于~/.go-version

三、Java多环境 jenv

安装

bash 复制代码
git clone https://github.com/jenv/jenv.git /opt/env/jenv

MacOS修改~/.zshrc,Linux修改~/.bashrc,追加以下内容:

shell 复制代码
export JENV_ROOT="/opt/env/jenv"
export PATH="$JENV_ROOT/bin:$PATH"
eval "$(jenv init -)"
export JAVA_HOME="$(jenv prefix)"

使配置生效:

bash 复制代码
source ~/.zshrc

使用

很遗憾,java sdk不能通过jenv install命令完成安装,只能手动添加jdk。

所以我们需要提前下载好JDK包,并解压,然后让jenv管理:

bash 复制代码
jenv add /opt/env/java/jdk1.8.0_401.jdk/Contents/Home  # 放在opt有个缺点,IDEA添加不了
jenv add /Library/Java/JavaVirtualMachines/jdk-17.0.10.jdk/Contents/Home

基本使用:

bash 复制代码
jenv versions   # 查看所有版本
jenv remove oracle64-1.8.0.401  # 卸载指定jdk
jenv global 17  # 指定全局系统默认jdk
jenv local 17   # 指定当前用户jdk
jenv shell 17   # 指定当前终端jdk

参考

pyenv https://blog.csdn.net/tekin_cn/article/details/141813795

goenv https://zhuanlan.zhihu.com/p/657684399

相关推荐
睡一觉就好了。几秒前
C++ 容器
开发语言·c++
BYSJMG2 分钟前
计算机毕设推荐:基于大数据的共享单车数据可视化分析
大数据·后端·python·信息可视化·数据分析·课程设计
JMchen1234 分钟前
AI编程范式转移:深度解析人机协同编码的实战进阶与未来架构
人工智能·经验分享·python·深度学习·架构·pycharm·ai编程
你的代码我的心5 分钟前
微信开发者工具开发网页,不支持tailwindcss v4怎么办?
开发语言·javascript·ecmascript
瑞雪兆丰年兮8 分钟前
[从0开始学Java|第十二天]学生管理系统升级
java·开发语言
弹简特9 分钟前
【JavaSE-网络部分03】网络原理-泛泛介绍各个层次
java·开发语言·网络
执风挽^9 分钟前
Python_func_basic
开发语言·python·算法·visual studio code
tangchao340勤奋的老年?13 分钟前
ADS通信 C++ 设置通知方式读取指定变量
开发语言·c++·算法
froginwe1113 分钟前
SOAP 简介
开发语言
佑白雪乐15 分钟前
<Linux基础12集>1-11集大复习Review
linux·运维·策略模式