ubuntu安装pyenv 管理多版本Python
参考文档:
https://www.jianshu.com/p/731fac7b11a4
https://blog.csdn.net/weixin_39784263/article/details/110279912
https://www.cnblogs.com/nangec/p/12788811.html
pyenv 用来解决这类问题。它可以安装、卸载、编译、管理多个 python 版本,并随时将其中一个设置为工作环境。
pyenv 不支持 Windows 系统。
开始安装pyenv:
$ yum install git -y # 先安装git,若已安装跳过
$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
当然咯,你也可以直接把文本加到~/.bashrc中:
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init -)"
fi
这样下次登陆,或者直接用命令:source ~/.bashrc ,pyenv命令就可以使用了!
接下来我们就可以安装python了,但是再安装之前,我们必须要安装python所需要的依赖包,这个必须要安装,:
$ sudo apt-get install libc6-dev gcc
$ sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm
$ pyenv rehash # 数据库进行更新
安装指定Python版本
上面的依赖包搞定之后,我们就可以安装python了:
如果你在上面就心急火燎的安装python的话,就会发现除了慢的不行,还不会成功!究其原因是因为这个过程是使用源代码安装……,所以你必须要有可以编译python源代码的环境才可以。
先解决获得源代码的问题。pyenv当然会自己去下载源代码,但速度实在太慢了。你可以自己先从python的官方网站上使用迅雷等工具下载后缀名为tar.xz的源码文件(比如Python-3.10.0.tar.xz),然后在~/.pyenv的目录下建立一个cache的缓存目录并把源码文件放入其中。
你就可以愉快的执行:
pyenv install 3.10.0
常用pyenv命令
$ pyenv install --list # 显示可以安装的python版本
$ pyenv install -l # 显示可以安装的python版本
$ pyenv install 3.10.0 # 安装3.10.0版本的CPython,嘿嘿!
$ pyenv global 3.10.0 # 设置全局状态的python版本,*表示当前使用的版本
$ pyenv versions # 显示所有已经安装的python版本
$ pyenv version # 显示当前目录下采用的 python
$ pyenv local 3.10.0 # 会在目录下生成 .python-version 文件,用来指定当前目录下使用python的版本
同样此处需要重启终端对应版本才会正式生效
有时设置了pyenv local版本后,再设置global会发现没有生效,可以尝试:
pyenv local --unset
解除local设置。
要切换回系统版本,用同样命令:
$ pyevn global system
卸载python版本
$ pyenv uninstall 3.7.3
设置为系统变量:
sudo ln -s /home/haima/.pyenv/versions/3.10.0/bin/python3 /usr/bin/python3.10
python3.10 -V
注意事项:
输入python即可使用新版的python;
系统自带的脚本会以/usr/bin/python的方式直接调用老版本的python,因而不会对系统脚本产生影响;
使用pip安装第三方模块时会安装到~/.pyenv/versions/3.10.0下,不会和系统模块发生冲突;
使用pip安装模块后,可能需要执行pyenv rehash更新数据库。
pycharm配置