首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python模块的绝对与显式相对导入

在Python中,导入模块时可以使用绝对导入和显式相对导入。这两种导入方式的主要区别在于导入模块的方式和导入路径的指定。

绝对导入

绝对导入是指从项目的根目录开始导入模块。这种导入方式使用点号(.)表示包的层次结构,例如:

代码语言:python
代码运行次数:0
复制
from my_package.my_module import my_function

绝对导入的优势在于它可以明确地指定导入的模块路径,避免了因为不同目录下存在同名模块而导致的混淆。此外,绝对导入还可以避免因为sys.path的改变而导致的导入错误。

显式相对导入

显式相对导入是指从当前模块所在的目录开始导入模块。这种导入方式使用点号(.)表示当前目录及其子目录,例如:

代码语言:python
代码运行次数:0
复制
from .my_module import my_function

显式相对导入的优势在于它可以简化导入路径,并且在包的内部重组时更加灵活。此外,显式相对导入还可以避免因为sys.path的改变而导致的导入错误。

推荐的腾讯云相关产品和产品介绍链接地址:

以上产品可以帮助用户在云计算领域进行开发、测试、部署和运维等工作。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python相对绝对导入浅析

Python也提供了一个import hooks模板,叫ihooks(/usr/lib/python2.7/ihooks.py),也即是我们后面要重点分析一个模块。 ...__import__,重点说一下level这个参数:  - 用来表示absolute还是relative导入;  - 如果为0则表示是absolute导入;  - 大于0表示relative导入相对导入父目录级数...这里之所以会报错就是因为__package__为空字符串则表示这是一个顶层常规Python源码模块(top-level module),那么此时如果再有relative导入那么就没法进行模块定位了。...code 4:如果是relative导入,那么需要计算相对锚点是哪个,例如在spam.foo.test模块中执行import ..sub那么最后计算得出需要导入模块是spam.sub。 ...,就是导入完整模块路径名中第一个模块,类似就是如果我们要导入spam.foo.test,那么这个函数是先导入spam模块

1.2K70
  • Python】对绝对导入相对导入理解补充

    相对导入 ---- 在前一篇文章对相对导入相对”其实已经讲得比较清楚了,关键一点是,“相对”是相对package意思。...相对导入常用语法: from .lib2 import func2 from . import lib2 另外还有直接导入上级包或者模块,但是这很容易出错,建议不要使用。...绝对导入 ---- 前一篇已经提到,理解绝对导入,最重要就是理解sys.path这个环境变量,绝对导入时候,会按顺序在这个path指定路径中查找。...建议选择 ---- 前面已经看到了,无论是相对导入,还是绝对导入,都是有缺陷,那我们已经怎么选择呢? 我建议:优先使用相对导入。...__all__变量__init__.py文件 ---- 关于包和模块还有两点是值得说道说道: 4.1 __all__变量 直接看代码,lib2.py: __all__ = ['func2']

    1.3K30

    Python模块导入 ① ( Python 模块简介 | 模块概念 | 模块作用 | 模块特点 | 常见 Python 模块 | Python 模块导入 | Python 模块导入语法 )

    可执行代码 2、模块作用 Python 提供了很多模块 , 每个模块都可以实现一些功能 ; 可以将 模块 作为 工具包 使用 , 每个工具包封装了不同工具 , 如 : time 模块就封装了 时间...模块 Python 自带 标准库 模块 , 包含了Python中常用函数和类等代码片段 ; 除了标准库之外,还有大量第三方模块模块 ; 常见 Python 模块 : time 模块 : 提供了时间有关函数..., 可以用于生成随机数 ; os 模块 : 提供了操作文件系统函数 , 包括文件 / 目录操作等 ; sys 模块 : 提供了 Python 解释器交互函数 , 包括获取命令行参数 / 退出Python...; 二、Python 模块导入 1、Python 模块导入语法 Python 模块导入语法 : [from 模块名称] import [模块 | 类 | 变量 | 函数 | *] [as 别名] 上述语法中...别名 : 在 导入指定模块指定名称对应 类 / 变量 / 方法 基础上 , 为导入内容设置一个别名 , 可以直接使用别名访问导入内容 ;

    22720

    Python模块导入问题

    导入报错 python导入模块时,一般会遇到两个问题: 1、ValueError: attempted relative import beyond top-level package 2、ModuleNotFoundError...1、使用相对路径导入导致顶级层次报错,python中以当前运行脚本所在目录作为顶层层次,比如运行run.py时,A\B都是顶级层次,不能跨越顶级层次引用包或模块!...、每个项目应该只有一个能独立运行py文件,这是项目的主函数入口,该文件应该位于项目的最外层,这样的话运行时顶级层次最高,可以导入项目所有的模块和包了 2、项目内部可能分了很多模块来组织功能,但是内部模块一般不能独立运行...单独执行内部模块文件时,可能会因为跨目录导入模块导致运行出错。...3、如果内部模块一定要跨顶级层次导入,则应该使用sys.path.append来将路径添加到python包查找路径中 4、遇到类似问题,非常轻易定位,第一步分析当前顶级层次,是否有跨顶级层次导入

    2.4K40

    Python模块导入

    前言在 Python 中,模块是组织代码重要结构。通过模块,程序员可以更高效地管理大型项目,降低代码复杂度,提高代码可读性和可维护性。本文详细讲解了模块定义及其导入方式。...本篇文章参考:黑马程序员一、什么是模块Python 模块(Module)是一个 Python 文件,以 .py 结尾。模块可以包含函数、类和变量以及可执行代码。...Python标准库中包含了众多模块,为开发者提供了广泛功能支持,而自定义模块则允许开发者根据需求构建特定功能。...time # 导入Python内置time模块(即time.py这个代码文件)print("你好!")...等待5s后运行结果:使用 import time 导入整个 time 模块。调用模块函数(如 sleep),需使用模块名.函数名形式。注意事项:在Python中.

    10011

    ☞【案例】大数据数据挖掘相对绝对关系

    越来越多设备带着更加精密传感器,传回愈发难以驾驭数据流,于是人们需要日益强大分析能力。在气象学、石油勘探和天文学等领域,数据量井喷增长对更高层次分析和洞察提供了支持,甚至提出了要求。...;表面风压数据来自NASAQuikScat任务;海平面温度数据来自NASA/日本宇宙航空研究开发机构先进微波扫描辐射计-地球观测系统;海冰浓度和速度数据来自被动微波辐射计;温度和咸度分布来自船载、系泊测量仪器...绿色和蓝色区域则之关联较弱或者根本没有关联。...等到处理能力一次相对较小改变令结果出现突破性进展,克拉考尔补充道,大数据应用可能会经历一次“相变”。 “大数据”是一个相对说法,不是绝对,克拉考尔指出。...在我们无法觑探之处,决策在没人理解输入输出、数据决策之间关系情况下被自动做出。“这正是我所从事领域,”克拉考尔回应道,“我研究对象是宇宙中智能演化,从大爆炸到大脑。我毫不怀疑你说。”

    81580

    Python模块导入 ③ ( 模块导入语法 | from 导入部分模块功能 | 为导入模块设置别名 | import 导入模块设置别名 | from 导入模块设置别名 )

    一、导入模块部分内容 - from 导入部分模块功能 1、from 导入部分模块功能 在导入模块时 , 有时不需要使用模块完整功能 , 只需要导入指定部分功能即可 , 这样也符合最少知识设计原则 ;...功能名称 ; 通过该方式导入模块 , 只会导入模块部分指定功能 , 导入后 , 可以直接使用 specific_name 模块中 指定 功能名称 进行访问 ; 访问前 不必 使用 模块名称.功能名称...# 使用时间模块 sleep 休眠功能 sleep(3) print("结束执行") 执行结果 : D:\001_Develop\022_Python\Python39\python.exe D:.../002_Project/011_Python/HelloPython/Hello.py 开始执行 结束执行 Process finished with exit code 0 二、为导入模块设置别名...---- 1、设置别名语法 Python 中还可以为导入 模块 / 模块部分功能 设置别名 , 设置别名语法如下 : import module_name as renamed_name from

    21510

    2018年8月13日包相对导入绝对导入,包本地发布和网络发布

    可以通过python setup.py install命令可以直接把构建完毕文件当成第三方模块进行安装到本机 执行命令进行包打包发布 python setup.py sdist REMARK:打包文件...***            相对引入和绝对引入 有了包之后才有了相对引入f这种引入方式存在意义 绝对引入: 用到绝对引入时候需要mark一下设为源文件夹,以下两种都是绝对引入方式: import...引入最低级也要是模块级别的文件 相对引入:  相对引入命令必须要在终端中才能运行,输入命令是:python -m 父目录名.main.py,并且引入东西都需要 先在__init__文件中事先定义才能正常运行.../方法名/类型名称 from .plane.utils import func func() #这是相对于父目录进行相对引入,执行时候不能直接在本模块中执行, 因为在本模块中执行的话python...是唯一一个,不能再相对引入, 所以为了不报错,采用这种引用方式正确执行命令是在终端中输入:python -m 父目录名.main.py,找到参照物才能正确执行 有了from引入方式之后可以引入比模块名更加细致东西

    61830

    Python文件操作—— 补充(“相对路径”绝对路径”区别)

    接着第一篇(Python文件操作),这一篇会接着补充 上一篇没有出现知识 目录 一、路径问题 1、什么是"绝对路径"?...总结 一、路径问题 我们在进行文件操作时候,难免会遇到路径问题,路径分为两种:绝对路径和相对路径,所谓路径就是你要访问对象位置,下面我就来给大家介绍一下这两者区别 1、什么是"绝对路径"?...绝对路径:一般我们下载一个文件,系统会默认你下载到C盘中,但是你不希望C盘占用一些不必要文件,这个时候,你就会想要把文件存到其他位置,就拿我使用编辑器 Pycharm 来说吧,我们找到它,点击查看它属性...此图中,我们可以看到,红箭头所标的地方即是 Pycham  绝对路径,也就是文件在我们本地电脑上存储具体位置 二、亲身体会什么是"相对路径" 在介绍相对路径之前,我还得介绍一个概念"根目录","...以后写大型程序时候,我们用到都是相对路径,这样的话,。我们写程序才可以在别人电脑上运行

    1.3K30

    Python import导入模块 - reload() 导入内容

    redis-stable/ -rw-r--r--. 1 root root 1993430 Dec 5 01:37 redis-stable.tar.gz In [5]: 路径搜索 从上面列出目录里依次查找要导入模块文件...'' 表示当前路径 列表中路径先后顺序代表了python解释器在搜索模块先后顺序 程序执行时添加新模块路径 ## 首先给路径添加一个 /home 路径 In [5]: sys.path.append...重新导入模块 模块导入后,import module不能重新导入模块,重新导入需用reload 要演示这个示例,首先需要写一个py文件,用来导入演示: [root@server01 test]# cat...多模块开发时注意点 下面这里准备了几个py模块文件,思考一下,关于import common 变化为 from common import HANDLE_FLAG之后会产生什么样结果?...HANDLE_FLAG,那么单独引入HANDLE_FLAG则不是一个共享变量,当有其中一个模块如果修改了 HANDLE_FLAG的话,那么这个修改后变量就是这个py模块局部变量了。

    3K20

    Python模块导入区别常用函数案例

    作者:Nature 出品:AI机器思维 Python中包含很多模块,每个领域应用有关专家开发了相应模块,必须将其导入python中,然后才能使用。...案例1:Import mathfrom math import *区别(python案例) from math import *可以使程序更简单,调用函数时更便捷,以sqrt()函数为例。...可以指定导入math模块函数,使用前可以通过dir()查看模块包含内置函数,可以使用help()函数了解某一个数学函数详细信息。 ?...案例2:python函数默认精度为16位小数,例如下面17/6可以看到后面16位小数。 ? 对于大多数金融相关问题或研究这样精度基本够用也够高了。可以使用round()函数来改变精度。...案例3:对于导入模块更加简洁,可以给模块取别名,如math模块别名我们取m ? 案例4:print()函数,通过此函数在屏幕上显示一些内容。如显示圆周率Л值。 ?

    99830

    Python(三)安装扩展库模块导入

    1、我们使用pip来管理Python扩展库,常用pip命令使用方法 pip命令示例 说明 pip install SomePackage 安装SomePackage模块 pip list 列出当前已安装所有模块...命令安装python扩展库 ?...3、创建虚拟环境,如果有可能根据需要使用不同版本扩展库,这就需要使用Python创建一个虚拟环境。 演示创建和使用虚拟环境 (1)创建 ? ? (2)使用虚拟环境 ?...4、Python导入模块有两种方式 (1)import 模块名 [as 别名] 使用时需要在对象之前加上模块名作为前缀,即“模块名.对象名”。...(2)from 模块名 import 对象名[as 别名] 不需要模块名作为前缀,导入方式可以减少查询次数,提高访问速度。 ? 5、编写自己模块和包(这一块内容后续更新)

    1.1K10

    python导入模块妙用

    ---- 本节知识视频教程 文字讲解开始: 一、模块导入(第一种导入格式) 导入关键词英文是import,这里注意大小写。我们可以将import直译理解成导入。我们需要导入模块。...二、可以导入模块部分函数(第二种导入格式) 格式:from 模块名称 import 函数名称 这是第二种模块导入方式。 这种方式调用函数,不需要再书写模块名称。...模块 2、from 模块 import 函数 3、from 模块 import * 以上三种模块导入都可以写到python文件任意位置,但必须要注意要写到调用模块前面的位置,否则将会报错。...相关文章: python中类构造方法 Python中类接口 python中利用API文档开发学习 python中类和对象 python中函数递归VS循环 python中函数可变参数 python...python输入输出涨姿势 python中整型浮点型数值转换

    1.3K20

    Python 导入模块

    参考链接: 用Python导入模块 介绍  在看代码时发现Python导入类也可以用“.”方式,很是惊奇,记录下来: 如以下代码:其所在文件(模块)为test.py  class Dog():    ...def __init__(self,name1):   #这里想说一点,Python class中__init__就相当于Java中构造函数一样,形参在这定义。        ...if __name__ == '__main__':     dog1 = Dog("ha").bark() 单独运行时结果如下:  在新.py文件里想要导入这个模块Dog类,有两种方式: 第一种为...:  from test import Dog   #使用from  “模块名”import  “类名”方式 dog2 = Dog("jinmao") dog2.bark() 结果为:   第二种为:...  import test  #import  "模块名" dog2 = test.Dog("jinmao")  #使用   模块名.类名   方式使用此类 dog2.bark() 结果和第一种一样。

    2.3K20

    pycharm导入pandas模块_pycharm如何导入python

    大家好,又见面了,我是你们朋友全栈君。 网上有些反应安装pandas库时会出现问题,提示好像是pip原因。 这时候大概是自己pip版本太久啦。所以最好先在cmd更新一下pip好了。...在cmd输入命令: python -m pip install -U pip 出现成功信息:Requirement already up-to-date 即可。...之后打开pycharm 1、点击右上角 file/settings 2、在弹出界面选择project/project interpreter 3、点击右上方“+”进入搜索第三方库界面...4、在搜索框中搜索对应想安装库或者模块,点击左下方“Install package”就行了。...如果安装完成,该库显示字体颜色会变成蓝色,并且在上一个界面罗列出你已安装库 5、大功告成啦,再import时候就不会被标红线了~ 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn

    3.1K30
    领券