根据前文  pip install --user 使用方法和注意事项——python中安装module库到用户packages路径中

我们知道python中除了自身的全局module lib路径以外还是存在用户module lib路径的,为了了解python中库的搜索路径我们需要知道python模块site.py 中的一些变量及使用方法。

site.getsitepackages()   获得python中全局site-package路径。

site.getusersitepackages()    获得python中用户的site-package路径。

其中,site-package 为python中为第三方module lib安装提供的路径。

在使用 pip install xxx 时,是吧module lib安装到了全局的site-packages路径下的,在使用 pip install xxx --user 时是吧module lib安装到了用户的site-packages下面的。

这里举例:

windows平台下,python3.8版本,查看全局和用户  site-packages路径:

>>> import site
>>> site.getusersitepackages()
'C:\\Users\\81283\\AppData\\Roaming\\Python\\Python38\\site-packages'
>>> site.getsitepackages()
['C:\\Users\\81283\\anaconda3', 'C:\\Users\\81283\\anaconda3\\lib\\site-packages']

其中, site.USER_BASE  可以查看用户module lib的根目录。 site.USER_SITE可以查看用户 module lib的site-packages路径。

-----------------------------------------------------------------

更加全面的查看python中module lib的搜索路径:

python -m site

其中, sys.path 中是所有module lib的搜索路径,

USER_BASE,   USER_SITE 已经上面介绍了。

ENABLE_USER_SITE:   用来表示是否启用用户下的module lib搜索路径,也就是当 ENABLE_USER_SITE=True 时,并且C:\\Users\\81283\\AppData\\Roaming\\Python\\Python38\\site-packages  路径存在,此时sys.path中是有用户module lib搜索路径:C:\\Users\\81283\\AppData\\Roaming\\Python\\Python38\\site-packages的。

如果ENABLE_USER_SITE=False 或者 用户module lib搜索路径不存在,此时sys.path中是不出现 C:\\Users\\81283\\AppData\\Roaming\\Python\\Python38\\site-packages的。

演示: 移除用户的 module lib搜索路径:

再次使用 python -m site 查看python所有的module lib搜索路径:

发现 sys.path中已经看不到用户module lib的搜索路径。

===============================================

如何为当前python环境添加新的module lib搜索路径呢???

在当前  sys.path 的所有可搜索路径下面添加   .pth  文件,  .pth文件的文件名任意,这个主要看后缀名。在 .pth 文件中添加想要添加的新的 module lib搜索路径。

当前的 搜索路径:

在 sys.path 的任一路径下面创建 .pth 文件,如:

mypath.pth 文件内容:

再次查看 python 的  module lib搜索路径:

可以看到  .pth 文件中写的新的module lib路径已经添加到 sys.path 中。

=====================================================

查看并添加python中库的搜索路径的更多相关文章

  1. python中的模块及路径(2)

    如果我们要添加自己的搜索目录,有两种方法: 一是直接修改sys.path,添加要搜索的目录: >>> import sys >>> sys.path.append( ...

  2. gcc编译时头文件和库文件搜索路径

    特殊情况:用户自定义的头文件使用#include"mylib"时,gcc编译器会从当前目录查找头文件 一.头文件 gcc 在编译时寻找所需要的头文件 :    ※搜寻会从-I开始( ...

  3. 为Python加入默认模块搜索路径

    为Python加入默认模块搜索路径 方法一:函数加入 1) import sys 2) 查看sys.path 3) 加入sys.path.append("c:\\") 方法二:改动 ...

  4. Linux下的库文件搜索路径

        对于以压缩包发布的软件,在它的目录下通常都有一个配置脚本configure,它的作用确定编译参数(比如头文件位置.连接库位置等),然后生成Makefile以编译程序.可以进入该软件的目录,执行 ...

  5. Linux动态库的搜索路径

    下面是目录结构: pengdl@localhost:~$ tree test/test/├── fun.c├── Fun.h└── t1    └── main.c 1 directory, 3 fi ...

  6. linux动态库默认搜索路径设置的三种方法

    众所周知, Linux 动态库的默认搜索路径是 /lib 和 /usr/lib .动态库被创建后,一般都复制到这两个目录中.当程序执行时需要某动态库, 并且该动态库还未加载到内存中,则系统会自动到这两 ...

  7. linux gcc 编译时头文件和库文件搜索路径

    一.头文件    gcc 在编译时寻找所需要的头文件 :    ※搜寻会从-I开始    ※然后找gcc的环境变量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INC ...

  8. Linux动态库(.so)搜索路径

    主要内容: 1.Linux动态库.so搜索路径 编译目标代码时指定的动态库搜索路径: 环境变量LD_LIBRARY_PATH指定的动态库搜索路径: 配置文件/etc/ld.so.conf中指定的动态库 ...

  9. C/C++ 头文件以及库的搜索路径

    关键点: 1. #include <...> 不会搜索当前目录 2. 使用 -I 参数指定的头文件路径仅次于 搜索当前路径. 3. gcc -E -v 可以输出头文件路径搜索过程 C++编 ...

  10. linux下的头文件和库文件搜索路径 (转)

     GCC 找头文件有三种策略: 1. 会在默认情况下指定到 /usr/include 文件夹 ( 更深层次的是一个相对路径, GCC 可执行程序的路径是 /usr/bin ,那么它在实际工作时指定头文 ...

随机推荐

  1. 微软新Edge浏览器 WIN7 无法登录

    由于设备上的系统组件过期,不支持登录.请确保 Windows 为最新版本,然后重新尝试登录.访问 https://go.microsoft.com/fwlink/?linkid=2107246 了解详 ...

  2. Kubernetes监控手册04-监控Kube-Proxy

    简介 首先,请阅读文章<Kubernetes监控手册01-体系介绍>,回顾一下 Kubernetes 架构,Kube-Proxy 是在所有工作负载节点上的. Kube-Proxy 默认暴露 ...

  3. 判断一个数n是不是快乐数

    引言 题目:编写一个算法来判断一个数n是不是快乐数 来源:网友分享的面试算法题 题目描述 [快乐数定义] 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和. 然后重复这个过程直到这个数变为 ...

  4. 支付宝spi接口设计验签和返回结果加签注意点,支付宝使用JSONObject对象

    支付宝spi接口设计验签和返回结果加签注意点,支付宝使用JSONObject对象 SPI 三方服务接入指南https://opendocs.alipay.com/isv/spiforisv 服务端实现 ...

  5. Linux 错误码

    背景 Linux的错误码包含在/usr/include/asm-generic/errno-base.h和/usr/include/asm-generic/errno.h 这两个文件内. 可用于查询. ...

  6. 《Programming from the Ground Up》阅读笔记:p1-p18

    <Programming from the Ground Up>学习第1天,p1-18总结,总计18页. 一.技术总结 1.fetch-execute cycle p9, The CPU ...

  7. 使用explain优化慢查询的业务场景分析

    问:你最害怕的事情是什么? 答:搓澡 问:为什么? 答:因为有些人一旦错过,就不在了 Explain 这个词在不同的上下文中有不同的含义.在数据库查询优化的上下文中,"EXPLAIN&quo ...

  8. 详解Web应用安全系列(8)不足的日志记录和监控

    在Web安全领域,不足的日志记录和监控是一个重要的安全隐患,它可能导致攻击者能够更隐蔽地进行攻击,同时增加了攻击被检测和响应的难度.以下是对Web攻击中不足的日志记录和监控漏洞的详细介绍. 一.日志记 ...

  9. Vue 框架怎么实现对象和数组的监听?

    如果被问到 Vue 怎么实现数据双向绑定,大家肯定都会回答 通过 Object.defineProperty() 对数据进行劫持,但是 Object.defineProperty() 只能对属性进行数 ...

  10. ES6拼接数组与小程序本地存储

    拼接数组 ES6扩展运算符[三个点(...)将一个数组转为用逗号分隔的参数序列] goodsList: [...goodsList, ...goods] 本地存储 // 把接口数据存入本地存储中 wx ...