模块搜索目录

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501

当使用import语句导入模块时,默认情况下,会按照以下顺序进行查找。

(1)在当前目录(即执行的Python脚本文件所在目录)下查找。

(2)到PYTHONPATH(环境变量)下的每个目录中查找。

(3)到Python的默认安装目录下查找。

以上各个目录的具体位置保存在标准模块sys的sys.path变量中。可以通过以下代码输出具体的目录。

import sys                            # 导入标准模块sys

print(sys.path)                       # 输出具体目录

例如,在IDLE窗口中,执行上面的代码,将显示如图6所示的结果。

图6  在IDLE窗口中查看具体目录

如果要导入的模块不在图6所示的目录中,那么在导入模块时,将显示如图7所示的异常。

图7  找不到要导入的模块

注意:使用import语句导入模块时,模块名是区分字母大小写的。

这时,我们可以通过以下3种方式添加指定的目录到sys.path中。

(1)临时添加

临时添加即在导入模块的Python文件中添加。例如,需要将“E:\program\Python\Code\demo”目录添加到sys.path中,可以使用下面的代码:

import sys                                        # 导入标准模块sys

sys.path.append('E:/program/Python/Code/demo')

执行上面的代码后,再输出sys.path的值,将得到以下结果:

 ['E:\\program\\Python\\Code', 'G:\\Python\\Python36\\python36.zip', 'G:\\Python\\Python36\\DLLs', 'G:\\Python\\Python36\\lib', 'G:\\Python\\Python36', 'G:\\Python\\Python36\\lib\\site-packages', 'E:/program/Python/Code/demo']

在上面的结果中,红字部分为新添加的目录。

说明:通过该方法添加的目录只在执行当前文件的窗口中有效,窗口关闭后即失效。

(2)增加.pth文件(推荐)

在Python安装目录下的Lib\site-packages子目录中(例如,笔者的Python安装在G:\Python\Python36目录下,那么该路径为G:\Python\Python36\Lib\site-packages),创建一个扩展名为.pth的文件,文件名任意。这里创建一个mrpath.pth文件,在该文件中添加要导入模块所在的目录。例如,将模块目录“E:\program\Python\Code\demo”添加到mrpath.pth文件,添加后的代码如下:

# .pth文件是创建的路径文件(这里为注释)

E:\program\Python\Code\demo

注意:创建.pth文件后,需要重新打开要执行的导入模块的Python文件,否则新添加的目录不起作用。

说明:通过该方法添加的目录只在当前版本的Python中有效。

(3)在PYTHONPATH环境变量中添加

打开“环境变量”对话框,如果没有PYTHONPATH系统环境变量,则需要先创建一个,否则直接选中PYTHONPATH变量,再单击“编辑”按钮,并且在弹出对话框的“变量值”文本中添加新的模块目录,目录之前使用逗号进行分隔。例如,创建系统环境变量PYTHONPATH,并指定模块所在目录为“E:\program\Python\Code\demo;”,效果如图8所示。

图8  在环境变量中添加PYTHONPATH环境变量

注意:在环境变量中添加模块目录后,需要重新打开要执行的导入模块的Python文件,否则新添加的目录不起作用。

说明:通过该方法添加的目录可以在不同版本的Python中共享。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RHCE (Linux进阶) Ubuntu 操作系统安装教程

一、在官网下载iso镜像文件 下载地址: https://cn.ubuntu.com/download/server/step1#downloads(下载最新的Ubuntu 20.04 LTS服务器版本) 二、VMware安装配置过程 基本安装过程 1、新建虚拟机 2、选择典型即可 3、设置下载好的Ubuntu对应路…

数字展示具有广阔发展空间 市场规模保持增长态势

数字展示具有广阔发展空间 市场规模保持增长态势 数字展示是指以数字图像为核心,将触摸屏、红外线感应器、三维数字图像等相结合的高层次展示行业。与传统展示方式相比,数字展示能够突破时间、空间及形态的局限,将文字、图像等各种信息转化为…

【大模型】在大语言模型的架构中,Transformer有何作用?

Transformer在大语言模型架构中的作用 Transformer是一种用于序列到序列(Seq2Seq)任务的深度学习模型,由Vaswani等人于2017年提出。在大语言模型(LLM)的架构中,Transformer扮演着关键的角色,它…

idea ecs部署服务

如图 部署后脚本 cd /home/project; mkdir -p order; cd order; cp /home/project/order-service-0.0.1-SNAPSHOT.jar .; cp --no-clobber /home/shell/ctl-plus.sh .; ./ctl-plus.sh restart;

AI一周大事记 | 主动式AI应用崛起,国内大模型厂商继续发力,微软AI全家桶狂飙...

文章目录 1. 大模型持续更新1.1 百川智能发布最新一代基座大模型 Baichuan 41.2 微软新开源Phi-3系列三个模型1.3 面壁智能发布MMiniCPM-Llama3-V 2.5,成为全球最强端侧多模态模型! 2. AI应用探索2.1 GitHub Copilot扩展定制Copilot体验2.2 微软 Team Co…

扫码报名活动时,如何避免重复报名?

在用二维码进行活动报名或是物品领用时,如果有人重复提交,统计数据就会变得很麻烦。为了避免这种情况,我们可以为表单组件开启【内容不可重复提交】这个设置。 开启后,填表人就不能再填写 和「自己」 或 「其他填表人」 已提交的…

Vxe UI vxe-upload vue上传组件,显示进度条的方法

vxe-upload vue 上传组件 查看官网 https://vxeui.com 显示进度条很简单,需要后台支持进度就可以了,后台实现逻辑具体可以百度,这里只介绍前端逻辑。 vue 上传附件 相关参数说明,具体可以看文档: multiple 是否允许…

【第二节】C/C++数据结构之线性表

目录 一、线性表基本说明 1.1 基本概念 1.2 抽象数据类型 1.3 存储结构 1.4 插入与删除的区别 1.5 顺序存储和链式存储的优缺点 二、链表 2.1 基本概念 2.2 抽象数据类型 2.3 单链表的定义 2.4 单链表的基本操作 2.5 单链表模板形式的类定义与实现 三、单向循环链…

分享一份糟糕透顶的简历,看看跟你写的一样不

最近看了一个人的简历,怎么说呢,前几年这么写没问题,投出去就有回复,但从现在开始,这么写肯定不行了。下面我给大家分享一下内容: 目录 🤦‍♀️这是简历文档截图 🤷‍♀️这是基本…

虚拟海外仓系统哪个比较好?功能和性价比都要考虑到才行

虚拟海外仓作为海外仓的一种形式,因为其特有的一些优势和灵活性,还是受到很多人欢迎的。今天主要和大家聊一下,虚拟海外仓在选择海外仓管理系统的时候,都要注意什么,怎么才能选到合适的虚拟海外仓系统。 1、想选对wms…

谁将决战上海滩,决定权在你手里

关注我们 - 数字罗塞塔计划 - 5月6日雨轩兰台的《【大比武01】AIGC赋能档案文创设计的尝试》,打响了“华夏伟业”杯第二届大比武活动的第一枪,截止到5月31日,入选的10篇优质内容已全部揭晓,好评如潮。感谢雨轩兰台、微柏软件、昀…

【VSCode实战】转换大小写快捷键

今天在VSCode Insiders上编码,突然想将某常量转换为大写。按照virtual studio的习惯,我Ctrl Shift U没有效果,Ctrl U也没效果。网上搜了搜,原来VSCode Insiders没有这个默认功能。 而VSCode Insiders这么强大怎么可能没有大小…

Ubuntu24.04 LTS安装中文输入法

前言 最近,windows玩没了,一怒之下决定换一个操作系统,当然就是最新的Ubuntu24.04 LTS.,其中魔法和咒语(汉语)是inux遇到的第一大难关,我权限不够教不了魔法,但我可以教你咒语(๑•…

04基于Dockerfile创建自定义镜像并运行

自定义镜像 镜像的分层结构 常见的镜像在DockerHub就能找到, 如果我们自己要部署一个Java项目就要手动把它打包为一个镜像 部署一个Java应用的大概流程:准备一个Linux运行环境(CentOS或者Ubuntu均可)--> 安装并配置JDK --> 上传Jar包 --> 运…

智能驱动|ChatGPT视角下的告警事件闭环响应

背景 在人工智能技术浪潮发展驱动的背景下,数字化、智能化、多元化的网络安全格局逐渐形成。在这个时代如何有效利用好智能工具,促进工作有效开展,显得极为重要。很多安全企业也在大力发展GPT机器人从而实现数据智能化应用,发挥其…

深度学习笔记:1.anaconda安装

Download Anaconda Distribution | Anaconda 双击安装 设置环境变量 anaconda常用命令大全(保姆级别建议收藏)-CSDN博客https://blog.csdn.net/m0_64892604/article/details/128806043?ops_request_misc%257B%2522request%255Fid%2522%253A%252217174671831680018…

推荐ChatGPT4.0——Code Copilot辅助编程、Diagrams: Show Me绘制UML图、上传PDF并阅读分析

5月14日凌晨1点、太平洋时间的上午 10 点,OpenAI的GPT-4o的横空出世,再次巩固了其作为行业颠覆者的地位。GPT-4o的发布不仅仅是一个产品的揭晓,它更像是向世界宣告AI技术已迈入了一个全新的纪元,连OpenAI的领航者萨姆奥特曼也不禁…

图书管理系统(https://github.com/plusmultiply0/bookmanagesystem)

特意去github找了一个用flask框架的项目,一起来学习它吧 这个系统包括很多功能:用户权限管理模块(管理员和普通用户),注册登录模块(滑块验证码功能),图书有关信息模块(借…

Django使用正则表达式

本书1-7章样章及配套资源下载链接: https://pan.baidu.com/s/1OGmhHxEMf2ZdozkUnDkAkA?pwdnanc 源码、PPT课件、教学视频等,可以从前言给出的下载信息下载,大家可以评估一下。 在Django框架的新版本(v2.0 )中,URLc…

低比特大模型排行版暨AutoRoundV0.2发布

由于大量的量化模型没有精度数据,为了让用户更好地找到适配自己的模型或量化算法,最近推出了低比特大模型排行版,评估的指标主要涵盖10个zero shot的任务,如果有什么建议或者意见可以去社区提~目前支持13B以下模型的评估,后面可能…