【python】sys-psth和模块搜索路径

news2024/11/19 5:37:13

我们在导入一个模块的时候,比如说:

import math

它必然是有搜索路径的,那到底是在哪个目录下面找呢?Python解释器去哪里找这个文件呢?只有找到这个文件才能读取、装载运行该模块文件。

它一般按照如下路径寻找模块文件(按照顺序查找,找到就停下,不往下查找):
①内置模块
常见的python中的内置模块如下:

  • os模块:文件和目录,用于提供系统级别的操作;
  • sys模块:用于提供对解释器相关的操作;
  • json模块:处理JSON字符串;
  • logging: 用于便捷记录日志且线程安全的模块;
  • time&datetime模块:时间相关的操作,时间有三种表示方式;
  • hashlib模块:用于加密相关操作,代替了md5模块,主要是提供SHA1、SHA224、SHA256、SHA384、SHA512和MD5算法;
  • random模块:提供随机数。
    ②当前目录

    例如我们要运行的程序是common.py,但导入一些模块时,先查找python的内置模块,其次查找common.py的当前目录,也就是文件夹models下面的这些所有的文件。

③程序的主目录
程序的主目录,对于上面这个文件,是指:

④pythonpath目录(如果已经设置了pythonpath环境变量)
⑤标准链接库目录
⑥第三方库目录(site-packages目录)
⑦.pth文件的内容
⑧sys.path.append()临时添加的目录

当任何一个python程序启动时,就将上面这些搜索路径(出内置模块以外的路径)进行收集,放到sys模块的path属性中(sys.path)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1199988.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

经典OJ题:重排链表

题目: 给定一个链表,在进行重排前: 进行重排链表后: 如上图所示,所谓的重拍链表,就是将第一个节点连接第倒数第一个节点,第二个节点连接倒数第二个节点,以此类推,最后在连…

贝锐蒲公英X1解决远程访问NAS难题

由于经常在外出差和旅游,需要实现即使在外地也能远程登录回去家里的NAS去处理事情或传输文件,因此解决方案之一是搭建一个安全简易的个人私有云。 实施难度 (1)家庭网络无公网IP,且公网IP价格昂贵(2&…

今起不再“没完没了的接龙斗嘴”

今天本“人民体验官”推广人民日报官方微博(转央视网)的文化产品《数字减负不能比减脂还难》。 截图:来源“人民体验官”推广平台 在时下的一些网络自媒体平台之上,的确存在“越拉越多的群,没完没了的接龙&#xff0c…

在使用Vuex时,5个方法让你保证数据的更新及时性

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

hosts文件修改完成之后无法保存的解决方法

系列文章目录 centos7配置静态网络常见问题归纳_张小鱼༒的博客-CSDN博客 目录 系列文章目录 前言 一、hosts文件为何不能保存的原因 二、Hosts文件无法保存解决方法 1.需要用到hosts的地方 2.具体的操作步骤 总结 前言 Hosts文件是系统中的重要文件,它能屏…

Spring面试题:(五)Spring注解开发@Component,@Autowired,@Bean,@Configuration

Bean基本注解 spring提供注解的版本 Component注解替代bean标签 bean其它属性的相关注解: scope 替代scopelazy 替代lazy-initPostConstruct 替代init-methodPreDestroy 替代destroy-method 使用Component注解的前提是开启注解扫描 衍生注解Repository,Servi…

博客积分上一万一千了

博客积分上一万一千了 充满自信,继续前进。

GCC工具详解【Linux知识贩卖机】

很多人在喧嚣声中登场,也有少数人在静默中退出。 --单独中的洞见2 文章目录 简介程序到可执行文件链接动态链接和静态链接动态库和静态库动态库和静态库的打包打包静态库打包动态库选项 -static 总结 简介 GCC(GNU Compiler Collection) 是一…

移动硬盘和u盘的区别哪个好 移动硬盘和u盘有啥区别

在数字时代的今天,数据存储已经成为我们生活中的重要一环。当我们需要移动、备份或传输大量数据时,常常会不知道是选择移动硬盘还是U盘。其实,对于许多人来说,移动硬盘和U盘之间的区别并不清晰。下面我们就来看移动硬盘和u盘的区别…

【C语言:深入理解指针一】

文章目录 1.指针存在的意义2.指针变量和地址3.指针变量类型的意义3.1指针解引用3.2指针 - 整数3.3void* 4.关键字const4.1const修饰变量4.2 const修饰指针 5.指针运算5.1指针 -整数5.2指针-指针5.3指针比较大小 6. 野指针7.assert断言8. 数组名的理解9.一维数组传参的本质 1.指…

SpringBoot自动装配定义先后顺序失效原因极其解析

SpringBoot自动装配定义先后顺序失效原因极其解析 1、场景分析1.1、问题总结 2、使用AutoConfigureBefore、AutoConfigureAfter和AutoConfigureOrder注解指定加载顺序2.2、AutoConfigureXX注解失效原因总结 3、使用静态内部装配类提升加载顺序4、bean加载顺序规则 1、场景分析 …

腾讯云优惠券介绍、作用、领取方法及使用教程

随着云计算技术的发展,越来越多的企业和个人选择使用云服务进行数据存储、计算等业务。腾讯云作为国内知名的云服务商,提供了一整套完善的云解决方案,并不定期发放优惠券以吸引更多的客户。本文将为大家详细介绍腾讯云优惠券的作用、领取方法…

leetcode刷题日记:111. Minimum Depth of Binary Tree(二叉树的最小深度)

给我们一个二叉树,我们应该如何来求二叉树的最小深度呢? 二叉树的最小深度指的是叶子结点到所处的位置最小的,这就是二叉树的最小深度,也就是说我们要找的是离根结点最近的叶子结点。如果我们从根结点向下出发寻找叶子节点&#x…

【matlab】KMeans KMeans++实现手写数字聚类

目录 matlab代码kmeans matlab代码kmeans MNIST DATABASE下载网址: http://yann.lecun.com/exdb/mnist/ 聚类 将物理或抽象对象的集合分成由类似特征组成的多个类的过程称为聚类(clustering)。 对于给定N个n维向量x1,…,xN∈Rn,聚类的目标…

解决wrong fs type, bad option, bad superblock on /dev/sda1问题

1 背景 某天挂载硬盘的时候,系统提示了如下错误: 在此记录排查过程以及解决方案。 2 排查过程 出现这种问题应该先尝试从日志入手,输入: sudo dmesg | tail输出如下: 关键信息: [ 164.750178] ntfs3:…

【Mybatis小白从0到90%精讲】16: Mybatis like语句四种传参方式

文章目录 前言方式一:Java代码拼接方式二:MySQL CONCAT函数方式三:Mybatis bind标签方式四:SQL拼接前言 在实际开发中,SQL中使用 模糊查询like使用非常普遍,在MyBatis中,为了防止SQL注入攻击,可以使用#{}来传递参数,切记like语句不要使用${}的方式! 这里我总结了 四…

【离散数学必刷题】谓词逻辑(第二章 左孝凌版)刷完包过!

专栏:离散数学必刷题 本章需要掌握的重要知识: 1.利用谓词表达式表示命题 2.变元的约束 3.谓词公式的定义、谓词公式的赋值 4.谓词公式的翻译(注意在全总个体域时使用特性谓词) 5.有限论域上量词的消去 6.谓词公式中关于量词的等价…

【算法每日一练]-单调队列,滑动窗口(保姆级教程 篇1) #滑动窗口 #求m区间的最小值 #理想的正方形 #切蛋糕

今天讲单调队列 目录 题目:滑动窗口 思路: 题目:求m区间的最小值​ 思路: 题目:理想的正方形 思路: 题目:切蛋糕 思路: 一共两种类型:一种是区间中的最值&…

代码随想录算法训练营第四十九天|121. 买卖股票的最佳时机、122. 买卖股票的最佳时机 II

第九章 动态规划part10 121. 买卖股票的最佳时机 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最…

C语言证明一个偶数总能表示为两个素数之和。输入一个偶数并将其分解为两个素数

完整代码&#xff1a; // 一个偶数总能表示为两个素数之和。输入一个偶数并将其分解为两个素数#include<stdio.h>//判断一个数n是否为素数 int isPrimeNumber(int n){//1不是素数if (n1){return 0;}for (int i 2; i <(n/2); i){//当有n能被整除时&#xff0c;不是素…