根据前文  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. Idea SpringBoot 子模块 加载不到该子模块根目录config下面的配置文件

    Idea SpringBoot 子模块 加载不到该子模块根目录config下面的配置文件 import org.mybatis.spring.annotation.MapperScan; import ...

  2. 安装Ingress-Nginx

    目前,DHorse(https://gitee.com/i512team/dhorse)只支持Ingress-nginx的Ingress实现,下面介绍Ingress-nginx的安装过程. 下载安装文 ...

  3. 记一次反向代理过滤sql注入

    公司有一php系统,由于该系统是购买的,并且没人懂php,无法通过修改代码过滤sql注入问题 代码如下: public class Program { public static void Main( ...

  4. 12-CentOS7安装与管理数据库mariadb

    关于Mariadb Mariadb和MySQL是同一个制作团队,命令几乎一样. 在centos中安装 yum -y install mariadb mariadb-server firewall-cm ...

  5. MoneyPrinterPlus:AI自动短视频生成工具-腾讯云配置详解

    MoneyPrinterPlus可以使用大模型自动生成短视频,其中的语音合成和语音识别部分需要借助于一些第三发云厂商的语音服务. 很多小伙伴可能不知道应该如何配置,这里给大家提供一个详细的腾讯云语音服 ...

  6. Linux OpenGrok搭建

    目录 一.目的 二.环境 三.相关概念 3.1 OpenGrok 3.2 CTags 3.3 Tomcat 四.OpenGrok搭建 4.1 安装jdk 4.2 安装ctags依赖 4.3 安装uni ...

  7. do{}while0的两个作用

    1.作为一种防止宏错误展开的一种防御性写法. 相信很多人都知道,这里不展开了. 2.实现 goto 语句的功能,一次break就可以跳出到后续语句. do { if(...) break; ... } ...

  8. CF1093E 题解

    来一发 \(O(n \sqrt n)\) 时间,\(O(n)\) 空间的分块写法. 首先建模,把 数值 \(x\) 在两个数组中出现的位置作为坐标,问题就转化为一个二维动态数点. 考虑用序列分块维护第 ...

  9. UNR #7 Day2 T1 火星式选拔题解

    放一个比赛链接 先考虑打完暴力后 \(k = 1\) 的特殊性质. 当队列容量为 \(1\) 时,队中的人 \(i\) 会被第一个满足 \(i \leq j\) 且 \(b_i \leq a_j\) ...

  10. fisher线性判别分析和多分类问题探究

    本文继续来讨论另一种分类模型----fisher线性判别分析 目录 一.模型思想 二.SPSS的实现 1.参数设置 (1)定义范围 (2) 统计 (3)保存与分类 2.结果分析 (1)典则判别函数系数 ...