当前位置:   article > 正文

Ubuntu 22.04中 python3 site-package 路径问题_python site-package

python site-package

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

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

# 不在下面
/usr/lib/python3.7/site-packages
  • 1
  • 2
  • 3
  • 4
  • 5

今年用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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

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

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

也可以把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
  • 1
  • 2
  • 3
  • 4

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

$ pip3 install --user <package name>
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/757777
推荐阅读
相关标签
  

闽ICP备14008679号