【在python中import包】解决方案:使用脚本中sys.path.append(到当前路径的str),将包的父目录添加到sys目录中

python脚本中的sys.path.append("…")详解
前言

当我们导入一个模块时: import xxx ,默认情况下python解释器会搜索当前目录、已安装的内置模块和第三方模块。

搜索路径存放在sys模块的path中。【即默认搜索路径可以通过sys.path打印查看】
sys.path.append()

sys.path是一个列表 list ,它里面包含了已经添加到系统的环境变量路径。

当我们要添加自己的引用模块搜索目录时,可以通过列表 list 的 append()方法;

sys.path.append()
  • 1

对于需要引用的模块和需要执行的脚本文件不在同一个目录时,可以按照如下形式来添加路径:

【例如:

①导入的XX包在另一个项目文件中,在自己写的程序中需要用到XX包。

②所以我们在运行自己写的程序时,首先加载导入的XX包,加载的时候python解释器会去sys.path默认搜索路径去搜索。

③如果通过sys.path中的路径可以搜索到XX包,然后加载。

④如果无法通过sys.path中的路径搜索到XX包,即说明自己的程序中引用的XX包,与自己程序脚本所在目录不在同一个路径。(无法在自己的程序脚本中根据默认搜索路径查找到XX包)

⑤然后我们就需要将XX包的搜索路径添加到自己程序脚本的默认搜索路径中,重新运行自己的程序脚本,先搜索XX包在家载XX包。

import sys  
sys.path.append(’需要引用模块的地址')

# sys.path.append(“…”) # 这代表添加当前路径的上一级目录

【注意】:这种方法是运行时修改,脚本运行后就会失效。

运行结果:
在这里插入图片描述

sys.path.append(’…’)括号里这两个点是什么意思?

这是目录的意思,即代表上一级目录。

通过这种方式,python程序会在上一级查找相应的其他python包或者文件。

sys.path.append(’…’)还有类似的sys.path.append(’…/…’) 就是代表当前位置得上两级的目录地址。
改变当前python脚本的默认搜索路径的第二种方式

把路径添加到系统的环境变量,或把该路径的文件夹放进已经添加到系统环境变量的路径内。

环境变量的内容会自动添加到模块搜索路径中。
sys模块包含了与python解释器和它的环境有关的函数;可以通过dir(sys)来查看方法和成员属性。
下面的两个方法可以将模块路径加到当前模块扫描的路径里:

sys.path.append(‘你的模块的名称’)

sys.path.insert(0,‘模块的名称’)

永久添加路径到sys.path中,方式有三。

如下:

1)将写好的py文件放到已经添加到系统环境变量的目录下;

  1. 在 /usr/lib/python2.6/site-packages 下面新建一个.pth 文件(以pth作为后缀名);将模块的路径写进去,一行一个路径,如: vim pythonmodule.pth

/home/liu/shell/config
/home/liu/shell/base

  1. 使用PYTHONPATH环境变量
    export PYTHONPATH=$PYTHONPATH:/home/liu/shell/config
    去期待陌生,去拥抱惊喜。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YOLOv9来咧!

文章目录 论文:主要内容一、提出使用PGI(Programmable Gradient Information,可编程梯度信息)来解决信息瓶颈问题和深度监督机制不适合轻量级神经网络的问题。二、设计了GELAN(Generalized ELAN ,广义ELAN)…

Android 仿信号格子强度动画效果实现

效果图 在 Android 中,如果你想要绘制一个圆角矩形并使其居中显示,你可以使用 Canvas 类 drawRoundRect 方法。要使圆角矩形居中,你需要计算矩形的位置,这通常涉及到确定矩形左上角的位置(x, y)&#xff0…

性能全面提升!探索ONLYOFFICE最新8.0版:更快速、更强大,PDF表单编辑轻松搞定!

文章目录 PDF表单功能表单模板 屏幕朗读器功能EXCEL新增功能单变量求解图表向导数字排序 PPT 新增功能新增语言区域设置和优化插件界面 ONLYOFFICE 是由 Ascensio System SIA 推出的一款功能强大的办公套件,其中提供了适用于文本文档、表格以及演示文稿的在线编辑软…

如何使用Docker部署MongoDB并结合内网穿透实现远程访问本地数据库

文章目录 前言1. 安装Docker2. 使用Docker拉取MongoDB镜像3. 创建并启动MongoDB容器4. 本地连接测试5. 公网远程访问本地MongoDB容器5.1 内网穿透工具安装5.2 创建远程连接公网地址5.3 使用固定TCP地址远程访问 正文开始前给大家推荐个网站,前些天发现了一个巨牛的 …

C++ Primer 笔记(总结,摘要,概括)——第5章 语句

目录 5.1 简单语句 5.2 语句作用域 5.3 条件语句 5.3.1 if语句 5.3.2 switch语句 5.4 迭代语句 5.4.1 while语句 5.4.2 传统的for语句 5.4.3 范围for语句 5.4.4 do while语句 5.5 跳转语句 5.5.1 break语句 5.5.2 continue语句 5.5.3 goto语句 5.6 try语句块和异常处理 5…

OpenWRT部署web站点并结合内网穿透实现无公网ip远程访问

文章目录 前言1. 检查uhttpd安装2. 部署web站点3. 安装cpolar内网穿透4. 配置远程访问地址5. 配置固定远程地址 前言 uhttpd 是 OpenWrt/LuCI 开发者从零开始编写的 Web 服务器,目的是成为优秀稳定的、适合嵌入式设备的轻量级任务的 HTTP 服务器,并且和…

APP被针对攻击了,要怎么解决

随着APP行业的兴起,游戏公司异军突起,不管是在控证还是攻击方面都是属于最复杂的一个场面,游戏APP逐渐成为DDOS流量攻击的“重灾区”。没有提前做好了解就盲目进军游戏APP行业,一旦被攻击就会让公司束手无策。那么,刚上…

Spring Framework

Spring Framework Spring 是一款开源的轻量级 Java 开发框架,旨在提高开发人员的开发效率以及系统的可维护性。 Spring 框架指的都是 Spring Framework,它是很多模块的集合,如下图所示: 一、Core Container Spring 框架的核心模…

电脑恢复删除数据的原理和方法

在恢复数据的时候,很多人都会问,为什么删除的数据还能恢复?本篇和大家一起了解下硬盘上数据的存储方式,文件被删除的时候具体发生了什么,帮助大家理解数据恢复的基本原理。最后还会分享一个好用的数据恢复工具并附上图…

恒峰|高压森林应急消防泵|守护森林安全

森林是地球的肺腑,是人类赖以生存的重要资源。然而,随着人类活动的增加,森林火灾频发,给生态环境和人类生活带来严重威胁。为了保护森林资源,我们必须采取有效的措施进行消防。高压森林应急消防泵作为一种高效、环保的…

Kubernetes 部署 Tekton-Operator

Tekton Operator 简介 Tekton Operator 是一个 Kubernetes 扩展,用于在任何 Kubernetes 集群上安装、升级和管理 TektonCD Pipelines, Dashboard, Triggers(和其他组件)。 官方文档:https://tekton.dev/docs/operator/ 项目地址…

【redis】在Ubuntu 20.04中安装redis

在Ubuntu 20.04中安装redis 在Ubuntu 20.04中安装redis 切换到root用户 su root 使用apt命令来搜索redis相关的软件包. apt search redis 不能正常显示要先输入:sudo apt update 使用apt命令安装redis apt install redis 查找是否存在redis: netstat -anp | grep …