首页 > 编程语言 >Python模块的搜索路径

Python模块的搜索路径

时间:2023-11-17 09:58:20浏览次数:42  
标签:Versions Python Frameworks 路径 framework 模块 mod

在Python中,模块搜索路径是指解释器用来查找导入模块的位置列表。了解和掌握Python模块搜索路径对于正确导入模块和管理模块的位置至关重要。

Python模块搜索路径的主要来源包括当前目录、Python标准库目录和用户自定义的目录。你可以通过sys模块中的sys.path来查看和修改模块搜索路径。

在本文章中,您将了解模块搜索路径。看看下面Python执行以下语句时会发生什么:

>>> import mod
>>> mod.a
[100, 200, 300]
>>> mod.s
'Computers are useless. They can only give you answers.'

当解释器执行上述语句时,它会在由以下的目录列表中进行搜索:mod.py

  • 运行脚本的目录,或者当前目录
  • 环境变量中包含的目录列表PYTHONPATH(如果已设置)。(PYTHONPATH的格式取决于操作系统,但应模仿PATH环境变量。)
  • 安装 Python 时配置的与安装相关的目录列表

生成的搜索路径可在 Python 变量 中访问sys.path,该变量是从名为sys的模块获取的:

>>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']

注意:的具体内容sys.path取决于安装。上面的代码块在您的计算机上几乎肯定会略有不同。

因此,为了确保找到您的模块,您需要执行以下操作之一:

  • 放在mod.py脚本所在目录,如果是交互模式放入当前目录
  • 在启动解释器之前,修改环境变量包含所在的PYTHONPATH目录。
  • 放入mod.py与安装相关的目录之一,您可能有也可能没有写入权限,具体取决于操作系统。

还有一个附加选项:您可以将模块文件放在您选择的任何目录中,然后sys.path在运行时进行修改,使其包含该目录。例如,在这种情况下,您可以放入mod.py目录/Users/chris/ModulesAndPackages,然后执行以下语句:

>>> sys.path.append(r'/Users/chris/ModulesAndPackages')
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages', '/Users/chris/ModulesAndPackages']
>>> import mod
>>> mod.s
'Computers are useless. They can only give you answers.'

导入模块后,您可以使用模块的__file__属性确定找到该模块的位置:

>>> import mod
>>> mod.__file__
'/Users/chris/ModulesAndPackages/mod.py'
>>> import re
>>> re.__file__
'/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/re.py'

标签:Versions,Python,Frameworks,路径,framework,模块,mod
From: https://www.cnblogs.com/jishuba/p/17837916.html

相关文章

  • Communication Setup中VCDL与Python交互
     ApplicationMoudles基础代码[email protected]_scriptclassLinkToSigFile:#Calledbeforemeasurementstarttoperformnecessaryinitializations,#e.g.tocreateobjects.Duringmeasurement,fewadditionalobjects......
  • 4.2 Windows驱动开发:内核中进程线程与模块
    内核进程线程和模块是操作系统内核中非常重要的概念。它们是操作系统的核心部分,用于管理系统资源和处理系统请求。在驱动安全开发中,理解内核进程线程和模块的概念对于编写安全的内核驱动程序至关重要。内核进程是在操作系统内核中运行的程序。每个进程都有一个唯一的进程标识符(PI......
  • python有用链接
    Python处理日期方法大全、三十种方法 Python中的13个搔操作    ......
  • python Day13
    三种名称空间的介绍 名称空间的嵌套关系 全局作用域 局部作用域 在局部修改全局的名字对应的值:global x修改函数外层函数包含的名字的对应的值:nonlocal ......
  • 大白话说Python+Flask入门(一)
    写在前面技术这东西就得用,不用就会忘,之前写博客感觉就是给自己记笔记用,还有大部分,估计睡在语雀里都落灰了,哈哈!在Python领域,我觉得我还是算个小白吧,会写讲不明白,所以我决定想做一件事,先搞下flask这部分教程,看看能给大家说明白吗,真的感觉和Java有很大区别,废话不多说了,开整!安装依......
  • 简单的用Python爬取虎牙舞蹈区视频,真让人看了脸红~
    表弟自从学会了Python,每天一回家就搁那爬视频,不知道的以为是在学习,结果我昨天好奇看了一眼,好家伙,在那爬某牙舞蹈区,太过分了!为了防止表弟做坏事,我连忙找了个凳子坐下,跟他一起欣赏~啊呸,不对,监督他!当然,作为一个大公无私的人,好东西怎么能独享呢?这不立马就给大家分......
  • 盘点一个Python自动化办公需求之word文档图片自动插入
    大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Python自动化办公的问题,一起来看看吧。下面还给出了他的代码。二、实现过程这里【瑜亮老师】给了一个思路:如下所示:顺着这个思路,粉丝写了一份代码,但是在循环部分好像还存在些问题。后来【瑜亮老师......
  • Python人工智能代码
    这是一个人工智能代码算了,不说了,直接上代码!(有错请指出)whileTrue:问题=input()回答=问题.replace('吗','').replace('?','!')print(回答)第2种whileTrue:问题=input()回答=问题.replace('吗','').replace(�......
  • Python绘制神经网络模型的结构示意图的方法
      本文介绍基于Python语言,对神经网络模型的结构进行可视化绘图的方法。  最近需要进行神经网络结构模型的可视化绘图工作。查阅多种方法后,看到很多方法都比较麻烦,例如单纯利用graphviz模块,就需要手动用DOT语言进行图片描述,比较花时间;最终,发现利用第三方的ann_visualizer模块,可......
  • python向jpg图片添加经纬度信息
    importpiexiffromPILimportImage #ReadImagefname='Wide.JPG'img=Image.open(fname)exif_dict={"GPS":{}}exif_dict['GPS'][piexif.GPSIFD.GPSLongitude]=((180,1),(17,1),(532029,1))exif_dict['GPS'][......