Python/GoLang/Java 多环境管理工具 pyenv/goenv/jenv
目录
- 一、Python多环境
- 安装
- 使用
- pyenv公共环境
- pyenv虚拟环境
- 二、GoLang多环境goenv
- 安装
- 使用
- 三、Java多环境 jenv
- 安装
- 使用
- 参考
一、Python多环境
安装
git clone https://gitee.com/tekintian/pyenv.git /opt/env/pyenv
MacOS修改~/.zshrc
,Linux修改~/.bashrc
,追加以下内容:
export PYENV_ROOT="/opt/env/pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
使配置生效:
source ~/.zshrc
使用
pyenv公共环境
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版本库:
ln -s /System/Library/Frameworks/Python.framework/Versions/2.7 $PYENV_ROOT/versions/system
【高级用法】一次指定多个python版本
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不支持虚拟环境,需要额外安装依赖:
git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
随后pyenv
命令就支持创建虚拟环境了:
pyenv virtualenv 3.9 testenv # 创建名为testenv的虚拟环境,python版本3.9必须是已存在的
pyenv activate testenv # 激活虚拟环境,终端用户名前出现 (testenv) 表明已进入虚拟环境
pyenv deactivate # 退出虚拟环境
pyenv uninstall testenv # 删除虚拟环境
执行 pyenv virtualenvs
可以看到所有虚拟环境:
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
可以看到虚拟环境也被收录到版本管理中:
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
安装
git clone https://github.com/syndbg/goenv.git /opt/env/goenv
MacOS修改~/.zshrc
,Linux修改~/.bashrc
,追加以下内容:
export GOENV_ROOT="/opt/env/goenv"
export PATH="$GOENV_ROOT/bin:$PATH"
eval "$(goenv init -)"
使配置生效:
source ~/.zshrc
使用
与pyenv一模一样的套路。
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
安装
git clone https://github.com/jenv/jenv.git /opt/env/jenv
MacOS修改~/.zshrc
,Linux修改~/.bashrc
,追加以下内容:
export JENV_ROOT="/opt/env/jenv"
export PATH="$JENV_ROOT/bin:$PATH"
eval "$(jenv init -)"
export JAVA_HOME="$(jenv prefix)"
使配置生效:
source ~/.zshrc
使用
很遗憾,java sdk不能通过jenv install
命令完成安装,只能手动添加jdk。
所以我们需要提前下载好JDK包,并解压,然后让jenv管理:
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
基本使用:
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