pip安装在home/.local,出现问题:Defaulting to user installation because normal site-packages is not writeable

目录

一、问题描述

二、解决问题:找不到命令"python"

1. 映射python(不推荐)

​编辑

2. 复制python3的快捷方式

三、修改自带pip用户路径

四、解决问题:默认pip安装第三方库出现Defaulting to user installation because normal site-packages is not writeable

(1) 查看软件包安装目录 权限(可跳过)

(2) 添加软件包安装目录权限

五、解决问题:conda虚拟环境pip安装第三方库出现Defaulting to user installation because normal site-packages is not writeable

六、解决效果


一、问题描述

Ubuntu22.04使用pip安装第三方包时出现问题:

Defaulting to user installation because normal site-packages is not writeable

并且发现第三方库安装在/home/ XXX /.local/bin        (XXX为自己的用户名)

查找解决方案,发现阅读量5w的帖子解决方案是在pip前添加python -m,但是本人觉得这样治标不治本,每次安装第三方库时比较麻烦,所以本文记录本人虚拟机下彻底解决这些问题的流程


目录

1. 解决问题:找不到命令"python"​​​​​​​

2. 修改自带pip用户路径

3. 解决问题:         默认pip安装第三方库出现Defaulting to user installation because normal site-packages is not writeable

(1) 查看软件包安装目录 权限(可跳过)

(2) 添加软件包安装目录权限

4. 解决问题        conda虚拟环境pip安装第三方库出现Defaulting to user installation because normal site-packages is not writeable


二、解决问题:找不到命令"python"

1. 映射python(不推荐)

注意:我虚拟机中没有使用conda,此种方案在打开conda虚拟环境后再次输入python后还是映射的系统自带的python3,所以本人在mac上提供了另外一种解决方案,即复制快捷方式

输入python -m site指令,发现找不到命令"python",但是输入python3 -m site则可以显示python3的环境路径

python -m site
python3 -m site

参考解决方案:

解决报错:找不到命令 “python”,您的意思是 “python3” 命令来自 Debian 软件包 python3 的几种方式_python:未找到命令-CSDN博客文章浏览阅读803次,点赞5次,收藏6次。其中,使用 alias 或者使用 export 的方法都是既可以写入文件(如方法2),也可以直接在终端运行(如方法3),但写入文件的方式可以不用重复执行,而直接在终端输入命令敲回车的方式只是临时生效。如果系统中只安装了 Python 3,在执行命令 “python …” 时系统会无法识别,但每次输入 “python3 …” 又觉得有些麻烦和累赘,_python:未找到命令https://blog.csdn.net/Akutamatsu/article/details/132721166

此时可以使用别名把python映射成python3,使用sudo gedit  ~/.bashrc 或 sudo vim ~/.bashrc 编辑bashrc文件,在最后一行添加alias python='python3',

保存并退出后,再输入source ~/.bashrc 重新配置文件

#使用gedit编辑器打开bashrc文件
sudo gedit  ~/.bashrc
alias python='python3'
source ~/.bashrc

成功将python映射到python3上

2. 复制python3的快捷方式

macOS系统在终端中使用快捷键 ⌘ + ⇧ + G(Command + Shift + G),输入/usr/local/bin/python 

在Ubuntu的文件app中可以按压/键以根目录作为位置栏起点,输入/usr/bin/python3

发现只有python3,没有python的快接方式,所以可以直接把python3复制一份,然后重命名为python

cp指令可以复制并重命名文件,在macOS的路径是/usr/local/bin/,在Ubuntu中是/usr/bin/

MacOS

sudo cp /usr/local/bin/python3 /usr/local/bin/python

Ubuntu

sudo cp /usr/bin/python3 /usr/bin/python

复制完成后再次输入python就可以了,也不会影响到conda

记住一定要删除之前在~/.bachrc中添加的别名映射alias


三、修改自带pip用户路径

输入python -m site,查看python环境路径,发现用户路径为/home/ ××× /.local

python -m site
python3 -m site

根据自己虚拟机默认python版本,修改site.py文件(我的是python3.10)

#我的虚拟机默认python版本为3.10时,根据自己系统自行修改
sudo gedit /usr/lib/python3.10/site.py 

在gedit文本编辑器中,使用 快捷键 ctrl + F查找USER_BASE,找到找到USER_BASE和USER_SITE定义位置,在他们前面插入#将其注释掉,根据自己python版本添加路径。

# 注意自己默认的python版本,自行修改
USER_SITE = '/usr/local/lib/python3.10/dist-packages'
USER_BASE = '/usr/local'

点击标题栏上保存按钮并退出后,再次输入指令python -m site,发现用户路径已修改。但使用pip安装第三方库时仍安装在/home/ ××× /.local目录下。

python -m site
python3 -m site


四、解决问题:默认pip安装第三方库出现Defaulting to user installation because normal site-packages is not writeable

找到python报错位置,看不懂就翻译一下,有些问题就打印出来了,但是新手可能不会看

可以看出是软件包安装目录没有写入权限

(1) 查看软件包安装目录 权限(可跳过)

使用文件app查看对应目录权限(只查看,用于确定问题是否出在这里,也可以跳过这一步

在文件中,按        /        键可以快速前往指定目录,输入 usr/local/ 进入local目录下,

文件的预设快捷键

binlib文件夹上,按压鼠标右键,选择最下面的属性(或者鼠标左键选中,ctrl + i快捷键查看属性)在属性窗口中点击标题栏上的权限按钮,可以看到用户组只有访问文件权限

(文件中好像不能直接修改权限,需要使用指令行)

添加读写权限的方案在下一步,添加完成后,再次查看文件属性,访问权限应为新建和删除文件

(2) 添加软件包安装目录权限

 (最下面的sudo chmod -R 777可以为文件夹内所有文件添加权限)

由于bin路径下没有文件夹,因此可用a+w附加权限,-R 777可以为文件夹内所有文件添加权限(这样就可以兼容多种版本的python了)

sudo chmod a+w /usr/local/bin
sudo chmod -R 777 /usr/local/lib

也可以都用 -R 777指令

sudo chmod -R 777 /usr/local/bin
sudo chmod -R 777 /usr/local/lib

为相应文件夹添加权限后,再次使用pip安装第三方库,发现问题已解决。

五、解决问题:conda虚拟环境pip安装第三方库出现Defaulting to user installation because normal site-packages is not writeable

华为昇腾的Atlas 200I DK A2开发板在线烧录镜像后默认安装的miniconda3和pip,pip安装第三方包时出现问题:

Defaulting to user installation because normal site-packages is not writeable

网上查找问题解决方案是修改site.py文件,(自我感觉不太妥当)

通过pip show查包安装位置时发现包安装在/home/ ××× /.local/lib/python3.9/site-packages中,如下图所示

这是由于没有足够的权限把包写入系统级别的Python安装目录所致。。可以在终端中输入下列代码添加权限:(根据自己虚拟环境python)

(最下面的sudo chmod -R 777可以为文件夹内所有文件添加权限)

sudo chmod a+w /usr/local/miniconda3/lib/python3.9/site-packages
sudo chmod a+w /usr/local/miniconda3/bin
sudo chmod -R 777 /usr/local/miniconda3/lib/python3.9/site-packages/
sudo chmod -R 777 /usr/local/miniconda3/bin

出现报错:ERROR: Could not install packages due to an OSError: [Errno 13] Permission denied: '/usr/local/miniconda3/bin/runxlrd.py'     
Consider using the `--user` option or check the permissions.

就是因为没有权限安装包,在终端中输入第二行的 sudo chmod a+w /usr/local/miniconda3/bin指令即可(出现错误的包没安装上,要卸载后重新安装)


六、解决效果

重新安装包后,再通过pip show可以看到包安装在miniconda3中

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值