linux中非root权限用户python配置详解

在使用Linux的过程中,经常需要用到系统默认版本之外的python版本,甚至是需要自行安装符合需求的版本。对于没有root权限的用户来说,配置起来似乎非常困难,实际上这一切确实是不需要root权限就可以完成的。

值得补充的是,本文介绍的方法不局限于python,对于用户自己安装的软件、包等也是一样的步骤,掌握了原理,方法便可以一通百通。

.local作用

这部分主要介绍.local文件夹,若对此不感兴趣可以跳过,不会影响后续环境配置。

提到为单个用户配置特定单用的数据就不能不说.local文件夹,这是一个路径固定为/home/[username]/.local的文件夹,用于存储专用于用户(user-specific)的程序数据,比如安装的用户程序、python模块等。同时由于.local处于用户的根目录下,对其操作不需要root权限。

所以,在单个用户配置python、pip等环境时,理论上都应该和.local文件夹打交道(实际上,不使用.local也是可以的,但是从规范的角度看,.local无疑是最推荐的)。

链接到自己所需的版本

这里介绍最常遇到的情况,即系统中存在多个版本的python,而默认的python又不是自己想要的。举例来讲,比如系统中同时安装有python2.7和python3.8,默认python是2.7,想要将python3.8作为默认python就需要我们自己做链接了。

先说一下原理:先创建一个软链接.local/bin/python指向python3.8,然后将.local/bin添加到环境变量PATH最前边。

这样系统将优先从.local/bin中找python,从而可以顺理成章得根据软链接找到python3.8了。

step1:找到python3.8及其pip的安装路径。

注意配置的时候建议一并配置pip,否则可能会出现python和pip版本不一致的情况。

1
2
which python3.8
which pip3.8

一般来讲,系统中python的安装路径都在/usr/bin下,这里就以/usr/bin/python3.8/usr/bin/pip3.8为例继续。

step2:创建软链接:

1
2
3
4
5
# 将原本的链接删除,若原本没有可跳过
rm ~/.local/bin/python ~/.local/bin/pip
# 创建软链接,指向自己想要的版本
ln -s /usr/bin/python3.8 ~/.local/bin/python
ln -s /usr/bin/pip3.8 ~/.local/bin/pip

step3:.local/bin添加到环境变量PATH中(若已添加,可跳过):

1
2
3
4
5
6
# 打开~/.bashrc文件,进入编辑模式
vim ~/.bashrc
# 添加环境变量
export PATH=~/.local/bin/:$PATH
# 退出后 source一下使其生效
source ~/.bashrc

这样,新的python就配置好了,可以在命令行输入一下python试试~

安装自己所需的版本

这里介绍相对不常遇到的情况,即系统中没有安装自己想要的python。比如系统中安装了python2.7和python3.8,而自己需要python3.6,那就需要用户自己安装一个了。

同样也是先说原理:在用户目录下安装python,之后和上一节一样将其链接到.local/bin/python中即可。

step1:下载和准备工作。

python官网下载自己需要的python版本,这里即以安装python3.6.9为例,其他版本也是一样的操作。

1
2
3
4
5
6
7
8
# 下载
wget https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tgz
# 解压
tar zxfv Python-3.6.9.tgz
# 添加权限,否则无法执行安装
find Python-3.6.9/Python -type d xargs chmod 0755
# 进入解压后的目录
cd Python-3.6.9

step2:执行安装。

注意这里--prefix后的路径就是python的安装路径,此路径必须是绝对路径,默认我们将其安装在.local

1
2
3
4
5
./configure --prefix=/home/[username]/.local
make
make install
# 退出路径
cd

至此,python3.6就安装完成了,后边的步骤其实和上一节的步骤是一样的。

step3:设置python和pip软链接。

.local/bin中原本没有pythonpip,这一步可跳过,因为在安装的时候这些软链接就已经自动配置好了。否则就需要手动设置,步骤和上一节step2是相同的。

1
2
3
4
5
6
cd .local/bin
# 可以先ls 看一下有没有名为python和pip的文件,没有的话可以跳过step3
rm python pip
# 设置软链接,注意安装的python3.6其实也在这一级目录里
ln -s python3.6 python
ln -s pip3.6 pip

step4:.local/bin添加到环境变量PATH中,和上一节step3是一样的。

同样若.local/bin已被添加到环境变量中的话可跳过。

1
2
3
vim ~/.bashrc
export PATH=~/.local/bin/:$PATH
source ~/.bashrc

这样,就可以开心地使用自己安装的版本了。