Ubuntu18.04 Python版本管理

由于要在Tensorflow2.0+,但是ubuntu18.04默认的python3版本是3.6.9,不支持Tensorflow2.0以上版本。

 需要再装一个python3.7或以上版本。

常用的两个方法:

一、APT安装

安装

sudo apt update
sudo apt install python3.7

此时python3.7已经安装,但默认命令python3指向的还是3.6.9,下面切换python的默认指向。

切换默认指向

使用update-alternatives,给python版本编号。
要先安装update-alternatives,先添加两个指向

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 2

然后确定默认指向,执行以下命令后选择2即可(后面可以随时输入这条命令切换版本)

sudo update-alternatives --config python3


安装3.7对应pip

此时打开新终端会发现python3默认版本已经更改,但是pip3还没有,需要先安装

python3 -m pip install pip

到此,ubuntu18.04切换python3.7完成。

但是这种方法也有局限,比如不能安装特别新的版本。

二、Pyenv

pyenv做什么...

  • 允许您基于每个用户更改全局 Python 版本。

  • 为每个项目的 Python 版本提供支持。

  • 允许您使用环境变量覆盖 Python 版本。

  • 一次搜索来自多个 Python 版本的命令

简单来说就是一个简单的Python版本管理器,可以轻松地在各个Python版本之间进行切换。

Github 30.8k Star,有点东西。。

安装(推荐手动安装):

①自动安装(需要梯子):

curl https://pyenv.run | bash

curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash

②手动安装:

# 安装pyenv 
git clone https://github.com/pyenv/pyenv.git ~/.pyenv 
cd ~/.pyenv && src/configure && make -C src 

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc 
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc 
echo 'eval "$(pyenv init -)"' >> ~/.bashrc 
source ~/.bashrc

然后测试一下,打印出版本就是安装成功了。

$ pyenv -v
$ pyenv 2.3.17-5-ga57e0b50

使用介绍:

$ pyenv
pyenv 2.3.17-5-ga57e0b50
Usage: pyenv <command> [<args>]

Some useful pyenv commands are:
   --version   Display the version of pyenv
   commands    List all available pyenv commands
   exec        Run an executable with the selected Python version
   global      Set or show the global Python version(s)
   help        Display help for a command
   hooks       List hook scripts for a given pyenv command
   init        Configure the shell environment for pyenv
   install     Install a Python version using python-build
   latest      Print the latest installed or known version with the given prefix
   local       Set or show the local application-specific Python version(s)
   prefix      Display prefixes for Python versions
   rehash      Rehash pyenv shims (run this after installing executables)
   root        Display the root directory where versions and shims are kept
   shell       Set or show the shell-specific Python version
   shims       List existing pyenv shims
   uninstall   Uninstall Python versions
   version     Show the current Python version(s) and its origin
   version-file   Detect the file that sets the current pyenv version
   version-name   Show the current Python version
   version-origin   Explain how the current Python version is set
   versions    List all Python versions available to pyenv
   whence      List all Python versions that contain the given executable
   which       Display the full path to an executable

See `pyenv help <command>' for information on a specific command.

虽然它有一大堆命令,但实际使用频率高的命令并不多,主要有以下几个:

指令

说明

pyenv versions列出系统当前所有的python版本
pyenv version打印系统当前python版本
pyenv install安装指定版本
pyenv global设置python版本
pyenv uninstall卸载指定版本

查找需要安装的Python版本:

$ pyenv install -l
  ...
  ...
  3.8.2
  3.8.3
  3.8.4
  3.8.5
  3.8.6
  ...
  ...
  3.9.1
  3.9.2
  3.9.4
  ...
  ...

安装:

找到自己需要的版本,pyenv默认从python官网下载tar包,国内访问速度很慢,timeout也正常。可以考虑换国内镜像,方法放在后面。

pyenv install 3.x.x

这样就算安装完成了。

然后就是切换了:

$ pyenv versions
*  system
  3.8.5 (set by /root/.pyenv/version)
$ pyenv global 3.8.5
$ pyenv version
3.8.5 (set by /root/.pyenv/version)

(注意切换回系统自带版本的时候, pyenv global system

换源:

这里我使用的是淘宝的源 CNPM Binaries Mirror

pyenv 没有配置源地址的地方,不过我们可以变通一下。

它安装 Python 的流程就是先将把包下载到 ~/.pyenv/cache 目录,然后在进行安装,慢也就慢在下载的这个过程。

先手动将包下载到指定目录,在执行 pyenv install 即可。

可以精简为一个shll命令:

v=3.8.5; curl -L https://npm.taobao.org/mirrors/python/$v/Python-$v.tar.xz -o ~/.pyenv/cache/Python-$v.tar.xz; pyenv install $v

或者一劳永逸:

function pyinstall() { 
    v=$1 echo '准备安装 Python' $v curl -L                     
    https://npm.taobao.org/mirrors/python/$v/Python-$v.tar.xz -o ~/.pyenv/cache/Python-$v.tar.xz 
    pyenv install $v 
} 

# 写在~/.bashrc 保存 
# source ~/.bashrc 使改动生效

对了,第一次运行的话,需要在pyenv下创建一下缓存目录:

$ mkdir ~/.pyenv/cache

使用换源的安装命令:

$ pyinstall 3.9.16
准备安装 Python 3.9.16
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   145  100   145    0     0    184      0 --:--:-- --:--:-- --:--:--   184
100 18.8M  100 18.8M    0     0  1933k      0  0:00:09  0:00:09 --:--:-- 2361k
Installing Python-3.9.16...
Installed Python-3.9.16 to /root/.pyenv/versions/3.9.16

其他指令还是和原来一样的。

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值