python模块导入的问题
创始人
2025-05-28 04:21:07

目录结构如下:
在这里插入图片描述

一、模块的使用

s2使用s1的add函数

s1.py

def add(a, b):return a + b

方式一:
s2.py

from s1 import add
print(add(1, 3))

注意:导入如果爆红,只是编辑器爆红

方式二:
s2.py

import s1
print(s1.add(1, 3))

二、包的使用

s2使用package1包下package_s1的test函数

package_s1.py

def test():print('test')

方式一:
s2.py

from package1 import package_s1
package_s1.test()

方式二:
把包内部,很深的一些类,函数,给外部使用,需要在这注册一下
不在这注册的,本意是只给包内部用,如果外部想用,使用完整路径导入使用
先在package1目录下的__init__.py中导入

from .package_s1 import test

s2.py

import package1
package1.test()

三、相对导入和绝对导入

1.包里面的相对导入和绝对导入
package_s1.py

def test():print('test')

1、相对导入
package_s2使用package1包下package_s1的test函数
s2.py

from . import package_s1
def test_s2():package_s1.test()

2、绝对导入
s2使用package1包下package_s2的test_s2函数
package_s2.py

from script.package1 import package_s1  # 正确导入
def test_s2():package_s1.test()

如果这样导入from package1 import package_s1,会报错,因为package1不在环境变量中
解决:

  • 1 要么把package1加入到环境变量
  • 2 要么从环境变量路径开始导入

包如果使用绝对导入,包路径改变了导入会有问题,比如script目录不是根目录,上面还有个X目录

s2.py

from package1.package_s2 import test_s2
test_s2()

四、相对导入的坑

s2.py

from . import s1  # 相对导入,如果以脚本运行,报错
import s1  # 绝对导入不报错
print(s1.add(3, 4))

总结:
1 导入模块的路径,需要从环境变量下开始导入
2 执行脚本(s2)所在路径,自动加入到环境变量
3 也可使用相对导入(使用相对导入的py文件,不能作为脚本运行)

以django为例,django里除了settings.py所有文件都可以相对导入
导入文件,使用最短路径导入
如果导入飘红,并不一定是代码有问题,只需要把加到环境变量的路径,设为source root即可

相关内容

热门资讯

TimesNet复现结果 复现环境:RTX3090,22312GB显存,torch&...
加密月解密:概述,基础篇 加密月解密:概述,基础篇 2022找工作是学历、能力和运气的超强结合体&...
天涯海角门票(三亚天涯海角攻略... 今天给各位分享天涯海角门票的知识,其中也会对三亚天涯海角攻略,天涯海角门票进行解释,如果能碰巧解决你...
狮子林门票(狮子林门票预约官网... 今天给各位分享狮子林门票的知识,其中也会对狮子林门票预约官网进行解释,如果能碰巧解决你现在面临的问题...
石家庄特价机票(石家庄特价机票... 今天给各位分享石家庄特价机票的知识,其中也会对石家庄特价机票99元进行解释,如果能碰巧解决你现在面临...
深圳到北京火车时刻表(去北京的... 今天给各位分享深圳到北京火车时刻表的知识,其中也会对去北京的火车时刻表进行解释,如果能碰巧解决你现在...
【SpringBoot】76、... JPA是Java Persistence API的简称,中文名Java持久层API&#...
LoRa烟雾报警器的安装方式 LoRa烟雾报警器是一种常用的消防安全设备,它能够在发现火灾或烟雾时迅速发出警报&#x...
如家快捷酒店上海(如家快捷酒店... 本篇文章极速百科给大家谈谈如家快捷酒店上海,以及如家快捷酒店上海人民广场对应的知识点,希望对各位有所...
梅河口酒店(梅河口酒店排行榜)... 本篇文章极速百科给大家谈谈梅河口酒店,以及梅河口酒店排行榜对应的知识点,希望对各位有所帮助,不要忘了...
宇豪海逸酒店(宇豪海逸酒店地址... 本篇文章极速百科给大家谈谈宇豪海逸酒店,以及宇豪海逸酒店地址对应的知识点,希望对各位有所帮助,不要忘...
温州金球国豪大酒店(温州金球国... 本篇文章极速百科给大家谈谈温州金球国豪大酒店,以及温州金球国豪大酒店餐饮预订电话对应的知识点,希望对...
[数据分析与可视化] Pyth... 本文主要介绍GeoPandas的基本使用方法,以绘制简单的地图。GeoPandas是一...
stm32H7内部flash存... 目录一、慎用固件库1.HAL_FLASH_Program有问题,写入不正常2.采用直接...
厦门环岛路客栈(厦门环岛路客栈... 本篇文章极速百科给大家谈谈厦门环岛路客栈,以及厦门环岛路客栈图片对应的知识点,希望对各位有所帮助,不...
欣燕都连锁酒店(欣燕都连锁酒店... 本篇文章极速百科给大家谈谈欣燕都连锁酒店,以及欣燕都连锁酒店北京前门店对应的知识点,希望对各位有所帮...
大连火车站附近旅店(大连火车站... 本篇文章极速百科给大家谈谈大连火车站附近旅店,以及大连火车站附近旅店哪家有小姐对应的知识点,希望对各...
厦门至石家庄机票(厦门到石家庄... 今天给各位分享厦门至石家庄机票的知识,其中也会对厦门到石家庄机票查询进行解释,如果能碰巧解决你现在面...
Web系统优化实战 1. 课程介绍2. 系统优化原理 1.1. Web系统优化概述 1.1.1. 提高网站速度 1.1....
笨鸟学数据结构(绪论) 数据结构的定义按某种逻辑关系组织起来的一批数据,按一定的映象方式把它存放在计算机的存储...
经典卷积模型回顾24—利用模型... 模型剪枝是指在训练深度学习模型时将某些不重要的部分剪掉,以实现更快速、更高效的模型精度...
关于重庆通信学院的信息 重庆通... 本篇文章极速百科给大家谈谈重庆通信学院,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本...
新民到沈阳的火车(新民到沈阳的... 今天给各位分享新民到沈阳的火车的知识,其中也会对新民到沈阳的火车时间表和票价进行解释,如果能碰巧解决...
中国携程网(中国携程网上订票官... 本篇文章极速百科给大家谈谈中国携程网,以及中国携程网上订票官网对应的知识点,希望对各位有所帮助,不要...
全国各地旅游景点(全国各地旅游... 今天给各位分享全国各地旅游景点的知识,其中也会对全国各地旅游景点大全地图进行解释,如果能碰巧解决你现...
《MongoDB入门教程》第2... 本文将会介绍 MongoDB 复合索引的概念,以及如何创建复合索引。 复合索引 复合索...
Python 关键字globa... 变量作用域 一般在函数体外定义的变量成为全局变量,在函数内部定义的变量称为局部变量。 ...
力扣-《剑指offer》-链表... 目录 第一题:从尾到头打印链表 第二题:删除链表的节点 第三题ÿ...
上海七天快捷酒店(上海七天连锁... 本篇文章极速百科给大家谈谈上海七天快捷酒店,以及上海七天连锁酒店预订对应的知识点,希望对各位有所帮助...
临沂观塘温泉(临沂观塘温泉大酒... 今天给各位分享临沂观塘温泉的知识,其中也会对临沂观塘温泉大酒店进行解释,如果能碰巧解决你现在面临的问...