20 - 包导入原理,及常见报错解决方式

目录

一、路径

1、绝对路径

2、相对路径

3、常用命令

二、模块和包导入原理

1、辅助说明

2、原理

三、解决跨包调用模块中工具报错

1、解决方法核心思想

2、sys.path.append()

3、(推荐)sys.path.append(相对路径)

4、sys.path.append(绝对路径)     

四、举例说明-跨包调用模块

一、路径

1、绝对路径

  • 文件真正存在的路径。
  • 指从硬盘的根目录(盘符)开始,进行一级级目录指向资源文件。

2、相对路径

  • 从当前文件路径开始,进行一级级指向被引用的资源文件。

3、常用命令

  • ../:当前文件夹所在目录的上一级目录
  • ./:当前文件所在的目录。(可以省略)
  • /:当前文件所在的根目录。(域名映射的硬盘目录)

二、模块和包导入原理

1、辅助说明

  • Pycharm 是一种 Python IDE (集成开发环境),Pycharm是python的编译平台。
  • python中一个“.py” 文件可以被看成一个 独立模块。
  • python中一个文件夹对应着一个包。 

2、原理

  • Python在启动解释器(interpreter)时,不光会导入环境变量中sys.path搜索到的模块;还会导入项目目录(包)下的模块,当前工作目录就是项目目录。
  • 所以当在IDE环境中启动运行器时(相当于Pycharm编辑器运行时),能够顺利调用同一个包中的模块;
  • 又因为此时只导入了当前包,及当前包下的模块,所以直接调用其他包中的模块会报错。
  • 所以跨包调用模块后运行,就会报错:ImportError/ModuleNotFoundError:No Module named …

三、解决跨包调用模块中工具报错

1、解决方法核心思想

  • 把其他模块,所在包的路径,放到环境变量中作为全局变量,使得Python解释器中的环境变量的sys.path可以搜索到。
  • 说明: #sys.path是python的搜索模块的路径集,是一个list

2、sys.path.append()

  • 括号中添加的是,需要导入的模块所在包的路径。
  • 路径可以是相对路径,也可以是相对路径。

3、(推荐)sys.path.append(相对路径)

  • 操作步骤:在需要跨包调用其他模块的文件开头,添加 
import sys
sys.path.append('相对路径')      #sys.path.append('../包名')

4、sys.path.append(绝对路径)     

  • 操作步骤:在需要跨包调用其他模块的文件开头,添加 
import sys
sys.path.append('绝对路径')    #sys.path.append('C:\\Users\\lxs\\Desktop\\项目目录')

四、举例说明-跨包调用模块

  • 需求:
(1)新建一个 hm_message 的 包
(2)在目录下,新建两个文件 send_message 和 receive_message
(3)在 send_message 文件中定义一个 send 函数
(4)在 receive_message 文件中定义一个 receive 函数
(5)新建一个test包,定义一个 test_message 文件,编写测试代码调用发消息和收消息的函数
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值