Ubuntu 22.04中 python3 site-package 路径问题

以前一直用的CentOS环境,也许主要原因是权限一直比较大,site-packages 一般是如下目录。

# On CentOS 环境,安装的python package 在以下目录
/usr/local/lib/python3.7/site-packages

# 不在下面
/usr/lib/python3.7/site-packages

今年用Ubuntu 22.04,才注意到安装的 site-packages 是在每个用户的/home 下。这样如果一个python script 给其他用户使用,一定要确保依赖的package也被安装了。可以使用 python3 -m site 查看自己的USER_BASE, USER_SITE.

jjing@[hostname]:~$ python3 -m site
sys.path = [
    '/home/jjing',
    '/usr/lib/python310.zip',
    '/usr/lib/python3.10',
    '/usr/lib/python3.10/lib-dynload',
    '/home/jjing/.local/lib/python3.10/site-packages',
    '/usr/local/lib/python3.10/dist-packages',
    '/usr/lib/python3/dist-packages',
]
USER_BASE: '/home/jjing/.local' (exists)
USER_SITE: '/home/jjing/.local/lib/python3.10/site-packages' (exists)
ENABLE_USER_SITE: True

root@[hostname]:~# python3 -m site
sys.path = [
    '/root',
    '/usr/lib/python310.zip',
    '/usr/lib/python3.10',
    '/usr/lib/python3.10/lib-dynload',
    '/usr/local/lib/python3.10/dist-packages',
    '/usr/lib/python3/dist-packages',
]
USER_BASE: '/root/.local' (exists)
USER_SITE: '/root/.local/lib/python3.10/site-packages' (doesn't exist)
ENABLE_USER_SITE: True

可以参考文章 更新pip默认安装路径 修改site.py 文件中 USER_BASEUSER_SITE这两个参数值。

sudo vi /usr/lib/python3.10/site.py 

也可以把ENABLE_USER_SITE设为False

# Enable per user site-packages directory
# set it to False to disable the feature or True to force the feature
#ENABLE_USER_SITE = None
ENABLE_USER_SITE = False

因此Ubuntu下安装package 相当于用下面的命令给当前用户安装。

$ pip3 install --user <package name>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值