赞
踩
以前一直用的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_BASE
和USER_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>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。