问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何添加Python的模块搜索路径

发布网友 发布时间:2022-04-18 05:07

我来回答

5个回答

懂视网 时间:2022-04-18 09:28

本篇文章给大家带来的内容是关于探索Python模块自动搜索路径,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

最近在学习python的C++扩展(pybind11),写完一个扩展模块之后,想要在自己的环境中以后都能自动导入这个模块,而不用手动去添加路径(修改sys.path)应该怎么弄?以前最开始学习Python的时候看过这块内容,然而时间长了总会记忆不清,就再回顾了一遍。
概括来说,Python的自动搜索路径是这样的:


  1. 程序的根目录

  2. PYTHONPATH环境变量设置的目录

  3. 标准库的目录

  4. 任何能够找到的.pth文件的内容

  5. 第三方扩展的site-package目录


最终,这五个部分的拼接成为了sys.path,其中第一和第三、第五部分是自动定义的。
根目录(自动)
Python首先在根目录搜索要导入的文件。这个根目录的入口依赖于你怎么运行代码;当你运行一个程序时,这个入口就是程序运行入口(top-level script file)文件所在的目录;当你用交互式窗口期运行代码时,这个入口就是你所在的工作目录。
PYTHONPATH 目录(可配置的)
接下来,python会搜索PYTHONPATH环境变量里列出的所有目录,因为这个搜索在标准库之前,所以要小心不要覆盖一些标准库的同名模块。
标准库目录(自动)
这个没什么好说的,pyton会自动搜寻标准库模块所在的目录。
.pth文件列出的目录(可配置的)
这是用的比较少的一个python特性。它允许用户以每行一个的方式列出搜索路径,它和PYTHONPATH环境变量的不同是会在标准库路径之后搜索;而且它是针对这个python安装的,而不是针对用户的(环境变量会随着用户的不同而不同)。 那么,.pth文件应该放在哪里呢?可以通过以下代码找到.pth文件可以放置的位置:

import site
site.getsitepackages()

在我的环境中,输出如下:

['C:Python27', 'C:Python27libsite-packages']

Lib/site-package目录(自动)
最后,python会在搜索路径上自动加上site-packages目录,这一般是第三方扩展安装的地方,一般是由distutils工具发布的。

举例说明

讲了这么多,现在我们举个小栗子。我的python环境是windows7 + python 2.7。
1. 首先,我们新建一个环境变量PYTHONPATH,在里面加上目录E:python_extensions

module_search_1.png

  1. 然后,我们在C:Python27目录下新增一个add.pth文件,里面的内容是: E:python_extensions2

  2. 最后,我们在E:python_extensionsE:python_extensions2目录下分别新建模块test.pytest2.py,里面都写了一个test方法。
    我们打开交互解释器,结果如下:

module_search_2.png

可以看到,我们可以直接导入这两个目录下的模块了。查看sys.path:

module_search_3.png

嗯,这两个路径已经自动加入sys.path变量了。

总结

本文简要回顾了python的自动搜索路径,以及如何配置一些搜索路径以使得python在启动时能够将某些目录加到搜索路径。当然,这些自动搜索路径随着python版本和实现的不同会有细微差别,但对于目前的使用来说已经够了。

热心网友 时间:2022-04-18 06:36

方法一:函数添加
1 import sys
2 查看sys.path
3 添加sys.path.append("c:\\")

方法二:修改环境变量
w用户可以修改系统环境变量PYTHONPATH

方法三:增加.pth文件,推荐!
在site-packages添加一个路径文件,如mypkpath.pth,必须以.pth为后缀,写上你要加入的模块文件所在的目录名称就是了。
1 windows
c:\python27\site-packages
# 我们的学员把pth文件直接放在c:\python27
# (或其他python安装目录)目录下测试也是有效的
# 2015.9.23
2 linux(ubuntu)
/usr/local/lib/python2.7/dist-packages (note by shanql, 我是放在这个目录下有效的,所添加的目录一定要存在,不存在则会不成功)
2 linux(redhat)
/usr/lib/python2.7/site-packages

热心网友 时间:2022-04-18 07:54

将模块的绝对路径添加到Python搜索路径中就可以了 1 2 3 4 import sys print(sys.path) #显示python搜索库的路径 sys.path.append('') import numpy #然后这样就可以正常搜索到python2.6下的库

热心网友 时间:2022-04-18 09:29

  一般情况下都是讲自己的类库新建一个文件夹,然后写在 PYTHONPATH中,和第三方类库分割开来。

  修改lib/site.py
  sys.path.append('/to/your/path)
  加上这一句

热心网友 时间:2022-04-18 11:20

Python 的模块搜索路径 PYTHONPATH 类似 Java 的 CLASSPATH 由以下路径组合而成,通过更改以下 4 者其中之一都可以改变 Python 模块的默认搜索路径: 1. 当前工作目录 2. 操作系统的 PYTHONPATH 环境变量
如何添加Python的模块搜索路径

方法一:函数添加 1 import sys 2 查看sys.path 3 添加sys.path.append("c:\\")方法二:修改环境变量 w用户可以修改系统环境变量PYTHONPATH 方法三:增加.pth文件,推荐!在site-packages添加一个路径文件,如mypkpath.pth,必须以.pth为后缀,写上你要加入的模块文件所在的目录名称就是了。1 windows...

python 怎样添加模块加载路径

步骤1:建立文件,可以首先建立一个文本文档,写下路径如D:\\Python\\mulib。我这里新建的文件路径的文件夹命名为“mulib”步骤2:保存文档时,将文件类型选为所有,文件名为 setpath.pth。文件名是什么无所谓,主要是只有当文档类型选为“所有文件”,才可以定义文件类型为.pth 步骤3:将保存好的文...

如何设置python模块的默认搜索路径

当导入名为spam的模块时,解释器将在当前目录中搜索名为spam.py的文件,然后在环境变量PYTHONPATH指定的目录列表中搜索。这与shell变量PATH具有相同的语法,即目录名称列表。当没有设置PYTHONPATH时,或者当没有找到文件时,搜索将继续依赖于与安装相关的默认路径;在Unix上,这通常是:/ usr / local / l...

如何在linux环境下添加python模块路径

实验成功,将脚本导入python自带的环境变量目录中是有效的​,如果之前运行了python,再导入后并不用重启python就可以导入模块。3.接下来​我们回归正题,如何自定义python环境变量目录。最直接的想法是把目录加到刚才的python环境变量中。可以使用sys.path.append('/.../...')。​然后...

怎么在Path中添加Python路径

⒉右键单击 计算机,选择属性,之后会再单击高级系统设置,会出现一个系统属性的框。⒊单击环境变量,然后在系统变量那个框里找到path,双击后会出现编辑系统属性的框,在变量值文本框中的末尾添加“;D:\Python27_x64\”(这里是安装路径),单击确定按钮。之后一直点确定就可以了。

如何在linux环境下添加python模块路径

将模块的绝对路径添加到Python搜索路径中就可以了 1 2 3 4 import sys print(sys.path) #显示python搜索库的路径 sys.path.append('<你的python2.6下库的绝对路径>')import numpy #然后这样就可以正常搜索到python2.6下的库

如何的Python定位导入模块

1.如果导入的模块和主程序在同个目录下,直接import就行了 2.如果导入的模块是在主程序所在目录的子目录下,可以在子目录中增加一个空白的__init__.py文件,该文件使得python解释器将子目录整个也当成一个模块,然后直接通过“import 子目录.模块”导入即可。3.如果导入的模块是在主程序所在目录的父...

怎么在PyCharm中安装python的模块?

第一步:点击File,找到左边有个小改锥的settings,然后请点击它。第二步:找到settings页面下的Project spider 找到其中的Project Intreter然后进行点击。这时候页面右侧有一个小加号。请点击这个小加号。在搜索栏里面搜索自己想要安装的库,例子搜索的就是requests库。选中自己想要安装的库,点击左侧Install ...

python 导入模块问题

如果你想在自己的代码中使用这个模块,那么你必须将其添加至Python的导入检索路径(import search path)。最简单的做法如下:import syssys.path.append('/path/to/folder/containing/my_package')import my_package注意,你需要添加的是 my_package 的上一层文件夹路径,而不是 my_package 本身。原因是 my_package ...

pyinstaller打包丢失serial模块

首先,确认是否已安装pyserial模块,如果没有,通过命令行安装:bash pip install pyserial 其次,打包时可以采用--hidden-import参数,显式引入serial模块。例如,添加-p参数,指定模块搜索路径:bash pyinstaller --hidden-import=serial --path=C:\\Python39\\Lib\\site-packages --path=C:\\Users\\...

python路径添加 ps如何添加路径 查看python安装的模块 面具安装的模块路径 html添加图片路径 python查看已安装模块 python模块导入 matlab添加文件路径 magisk模块路径
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
北京唐会的老板是谁?听说是明星?? 唐会,大鲜,蔡老板三方后面还有通天大佬 组词:抑( ),谐( ) 小六属什么生肖 苹果通讯录能批量隔空投送吗? 回龙观地铁站坐什么车到北京市顺义区司法局李遂司法所 带状疱疹早期怎么治疗 macbook air的usb- c和type- c的区别是什么? 世界上有哪些好听的民歌 求找各国经典民歌的名称 怎么区分女性胸部罩杯? 谁有加工现场5S检查表??? 5s标准内容是什么? 希望能在2013-09-25 16-09之前解答 如何给仓库做5S检查表? 公司要推行5S,现在要对5S进行检查,如何检查?需要检查表,有没有详细点的?谢谢各位帮忙。 养叉尾鱼好还是养黄骨鱼好 库房5s管理检查表急需要一份 如何做好5S现场管理检查表等 经典5S检查表 企业5S管理中各项任务检查表的内容包括哪些? X尾鱼多少钱斤野生 企业管理5S检查表 半斤叉尾鱼养一年有多重 5s检查表 5S检查表(生产现场) 5S星级现场检查表扣分说明,哪几项扣分未零分 医保缴费提示无自然人信息是怎么回事? 交医保显示无自然人登记信息可以在手机上操作吗? 在微信上交医保显示无自然人信息是怎么回事? 手机交医保显示无登记信息是怎么回事 英雄联盟打完新手教程卡住了 LOL新手教程“现在开始”不能点? LOL新手教程掉线就进行不了了。郁闷求解啊、 电信的固定话费可以取消吗? 固定话费能取消吗,移动的 月固定费怎么取消? 孙女给奶奶的祝寿词怎么说? 怎么说祝寿词? 祝寿词怎么写 关于为老人如何写祝寿贺词 超音速飞机一小时飞多少千米? 得心应手造句名人少年这篇课文下一届奥运会将,于哪一年哪个国家哪个城市 马上要公务员初任培训了,时间一周,请问大家培训有什么内容呢 什么叫心学? 名词解释主观唯心主义 专业拍摄,制作企业各类高清晰宣传片和电视广告片 实力的保障,新推套餐优惠选择 李贽名词解释 什么叫宋明理学 阳明文化是什么 名词解释-青藤白阳拜托各位了 3Q