查看并添加python中库的搜索路径
根据前文 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中库的搜索路径的更多相关文章
- python中的模块及路径(2)
如果我们要添加自己的搜索目录,有两种方法: 一是直接修改sys.path,添加要搜索的目录: >>> import sys >>> sys.path.append( ...
- gcc编译时头文件和库文件搜索路径
特殊情况:用户自定义的头文件使用#include"mylib"时,gcc编译器会从当前目录查找头文件 一.头文件 gcc 在编译时寻找所需要的头文件 : ※搜寻会从-I开始( ...
- 为Python加入默认模块搜索路径
为Python加入默认模块搜索路径 方法一:函数加入 1) import sys 2) 查看sys.path 3) 加入sys.path.append("c:\\") 方法二:改动 ...
- Linux下的库文件搜索路径
对于以压缩包发布的软件,在它的目录下通常都有一个配置脚本configure,它的作用确定编译参数(比如头文件位置.连接库位置等),然后生成Makefile以编译程序.可以进入该软件的目录,执行 ...
- Linux动态库的搜索路径
下面是目录结构: pengdl@localhost:~$ tree test/test/├── fun.c├── Fun.h└── t1 └── main.c 1 directory, 3 fi ...
- linux动态库默认搜索路径设置的三种方法
众所周知, Linux 动态库的默认搜索路径是 /lib 和 /usr/lib .动态库被创建后,一般都复制到这两个目录中.当程序执行时需要某动态库, 并且该动态库还未加载到内存中,则系统会自动到这两 ...
- linux gcc 编译时头文件和库文件搜索路径
一.头文件 gcc 在编译时寻找所需要的头文件 : ※搜寻会从-I开始 ※然后找gcc的环境变量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INC ...
- Linux动态库(.so)搜索路径
主要内容: 1.Linux动态库.so搜索路径 编译目标代码时指定的动态库搜索路径: 环境变量LD_LIBRARY_PATH指定的动态库搜索路径: 配置文件/etc/ld.so.conf中指定的动态库 ...
- C/C++ 头文件以及库的搜索路径
关键点: 1. #include <...> 不会搜索当前目录 2. 使用 -I 参数指定的头文件路径仅次于 搜索当前路径. 3. gcc -E -v 可以输出头文件路径搜索过程 C++编 ...
- linux下的头文件和库文件搜索路径 (转)
GCC 找头文件有三种策略: 1. 会在默认情况下指定到 /usr/include 文件夹 ( 更深层次的是一个相对路径, GCC 可执行程序的路径是 /usr/bin ,那么它在实际工作时指定头文 ...
随机推荐
- SRE 排障利器,接口请求超时试试 httpstat
夜莺资深用户群有人推荐的一个工具,看了一下真挺好的,也推荐给大家. 需求场景 A 服务调用 B 服务的 HTTP 接口,发现 B 服务返回超时,不确定是网络的问题还是 B 服务的问题,需要排查. 工具 ...
- redis查询 第1个数据库,而不是默认的第0个数据库
redis查询 第1个数据库,而不是默认的第0个数据库 spring.redis.database = 1 默认: spring.redis.database = 0 car-test:0>ge ...
- float与byte[]互相转换
今天想利用socket发送数据,可是float类型该怎么发送呢?我的想法是先转换成byte[]型,接收之后再转换回来. float类型是4个字节,而byte是1个字节,所以需要转换成为byte[]的类 ...
- Linux增加系统调用(亲测成功)
我使用的操作系统是CentOS,其他的操作系统类似. 相关软件和Linux的基础操作这里不再赘述. 实验环境 VMWare Workstation.CentOS-7 实验步骤 ...
- 2019银川区域赛BDFGHIKN题解
B.So Easy 题目大意:给你一个正方形矩阵,初始都是0,题目对这个矩阵做了许多次操作,每次操作把行+1或列+1.其中有一个元素被隐藏了,你需要找出这个被隐藏的元素并判断它在操作之后应该是多少. ...
- Linux 内核:设备树(3)把device_node转换成platfrom_device
Linux 内核:设备树(3)把device_node转换成platfrom_device 背景 在上一节中讲到设备树dtb文件中的各个节点转换成device_node的过程(<dtb转换成de ...
- Centos 下Rabbit MQ 常用操作指令 汇总
1.rabbitmq 服务的启动停止. service rabbitmq-server start service rabbitmq-server stop 重启命令需要依次执行 stop 再 sta ...
- 使用Sqlcel操作数据库整理数据视频
链接:https://pan.baidu.com/s/1G4FJbLbN0oXAu61syWxCOA 提取码:noyz
- Js 中的数组
在js 中,数组就是对象,除了可以使用字面量语法[...]来声明数组外,它和其它对象没有什么区别.当创建一个数组['a', 'b', 'c']时,内部的实现形式如下: { length: 3, ...
- Win10 下安装使用easyocr图片识别工具
[前言] 最近在做图像识别相关的工作,找到了一个名为EasyOCR的pythoh 库. 使用过程中出现了一些问题,现做简单记录. [正文] 1. 安装EasyOCR 我用了最简单的方法:pip3 in ...