python如何修改包导入时搜索路径

模块导入时路径搜索机制

1.1 包导入搜索机制

python的import操作,其本质类似于我们日常在电脑上搜索指定文件名的文件,只不过,python一般不会像我们那样,在本地磁盘全盘进行搜索,而是有其自己的控制机制,可以控制搜索的范围和顺序,这样可以保证效率,同时也可以做到一定程度的隔离,比如python创建虚拟的运行环境,就是基于这个原理,不同虚拟运行环境,python安装路径、import搜索路径都是单独隔离的,而常用的虚拟环境维护和创建工具,其核心也是通过修改python默认安装路径、版本、包搜索路径等信息达到目的的。

一般情况下,import时,包搜索顺序和范围如下:

首先搜索运行命令当前文件夹,或者系统当前工作文件夹(可通过命令修改cwd)

再搜索环境变量PYTHONPATH内的文件路径

最后搜索python安装路径内的sitepackages文件夹(一般通过pip安装的包,均会默认放到这个文件夹下,当然,也可简单的将自己的包放到这个文件夹下,这样也无需改变搜索路径)

立即学习“Python免费学习笔记(深入)”;

1.2 修改搜索路径

核心思路,即修改1.1中提到的三个搜索节点的值,即可改变 包导入时的搜索范围

1.2.1 通过修改sys.path变量

sys.path变量,管理的是Python包搜索路径内所有文件夹路径(即当前文件夹、PYTHONPATH环境变量内的路径、python默认安装路径),该变量是个列表,可以通过sys.path.append或者sys.path.insert等方法,将自己希望导入时被搜索的路径添加到该列表变量内即可。

不过该方法只会在运行时生效,一旦退出,便失效。

1.2.2 通过修改PYTHONPATH环境变量

PYTHONPATH环境变量,是管理python包导入时的搜索路径的变量,故可以通过向该环境变量内添加路径的方式来修改搜索路径,且该方法因为是修改了环境变量,故也是永久的,且影响也是全局的。

针对Mac电脑,修改该环境变量的方法如下:

打开~/.bashrc文件,如果没有,则通过touch命令创建

在文件内写上 export PYTHONPATH=your own dir :$PYTHONPATH,比如你希望将~/test路径添加至该环境变量,则为  export PYTHONPATH=~/test :$PYTHONPATH

在命令行执行 source ~/.bashrc(主要是让系统重新加载运行该文件,以使此次修改生效)

1.2.3 通过添加**.pth文件

以上两个办法,或者是临时修改,或者就是全局修改影响面太大,第三种方式可谓兼具前两种方法的特点。

可以在指定Python安装目录下的site-packages目录文件夹内,添加一个**.pth文件,在该文件内逐行添加自己希望被搜索的路径即可。

附:临时添加python搜索包路径的方法

方法1:(先进入python)

import syssys.path.append(‘路径')

登录后复制

(这种方式仅对当前python有效)

方法2:

export PYTHONPATH=路径

登录后复制

(这种方式对所有的python有效)

以上就是python如何修改包导入时搜索路径的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2234441.html

(0)
上一篇 2025年2月26日 17:34:19
下一篇 2025年2月26日 17:34:33

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Python中的描述器怎么使用

    概述 描述器是一种python对象,用于定义在访问其他对象属性时所执行的操作。通过描述器,可以实现多种不同的行为,例如计算属性、缓存属性值、以及控制属性访问等。使用描述器可以自定义属性访问行为,避免在每个属性使用处编写重复的代码。 任何类的…

    编程技术 2025年2月26日
    000
  • 怎么使用Python+PyQt5自制监控小工具

    利用opencv的图像处理功能可以轻松对计算机摄像头的调用实现实时图像的采集效果。 最终将图片进行保存后生成监控的历史视频记录。 pip install PyQt5pip install python-opencv 登录后复制 若是没有安装…

    2025年2月26日
    200
  • Python中基本数据类型和常用语法有哪些

    整数 在python中,整数(integer)是一种内置数据类型,用于表示整数值。python中的整数类型可以表示任意大小的整数,而不需要考虑计算机字长的限制。这是因为python会自动根据需要调整整数类型的位数,以便可以存储任意大小的整数…

    2025年2月26日
    200
  • 快速易用的Python数据可视化方法有哪些

    数据可视化是数据科学或机器学习项目中十分重要的一环。通常,你需要在项目初期进行探索性的数据分析(eda),从而对数据有一定的了解,而且创建可视化确实可以使分析的任务更清晰、更容易理解,特别是对于大规模的高维数据集。在项目接近尾声时,以一种清…

    2025年2月26日 编程技术
    200
  • Python之datetime模块怎么使用

    1、日期时间对象 日期时间对象是指具有日期(年月日)和时间(时分秒)双重属性的实例 日期时间对象的类型为datetime.datetime 日期时间对象常用的属性有年、月、日、时、分、秒、微秒 日期时间对象可以指定时间创建,也可以通过获取当…

    2025年2月26日 编程技术
    200
  • Python如何删除列表中重复元素

    直接遍历列表删除 l1 = [1, 1, 2, 2, 3, 3, 3, 3, 6, 6, 5, 5, 2, 2]for el in l1:    if l1.count(el) > 1:        l1.remove(el)pri…

    编程技术 2025年2月26日
    200
  • 怎么使用Python Pandas更新行和列

    1. 创建 Pandas 数据集 为了创建数据框,pandas 提供了函数名称 pd.dataframe,它可以帮助您从一些数据中创建数据框。 让我们看看它是如何工作的。 #创建一个字典import pandas as pdfruit_da…

    2025年2月26日 编程技术
    200
  • Python免登录怎么实现域名解析

    目的是编写python脚本,通过dnspod api获取个人域名内的dns解析记录, 免登录实现域名的解析、修改和删除: 为什么要编写这个脚本?当你在公司负责很多的域名又经常需要解析和查看,频繁登录网站去查去修改是一件费神的事。 上图的账号…

    2025年2月26日 编程技术
    200
  • Python爬虫之怎么解析HTML页面

    用Python解析HTML页面 我们通常需要解析网络爬取的页面,以获取我们需要的数据。通过分析 html 标签的组合结构,我们可以提取出网页中所包含的有用信息。在 python 中,有三种常见的 html 解析方式:正则表达式解析、xpat…

    编程技术 2025年2月26日
    200
  • Python async模块如何使用

    协程,又称微线程,是一种在用户态进行上下文切换的技术。简而言之,其实就是通过一个线程实现代码块相互切换执行 Python对协程的支持是通过generator实现的。 在generator中,我们不但可以通过for循环来迭代,还可以不断调用n…

    2025年2月26日
    200

发表回复

登录后才能评论