当前位置:   article > 正文

20 - 包导入原理,及常见报错解决方式_使用了sys.path.append但是没有加载出来

使用了sys.path.append但是没有加载出来

目录

一、路径

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 文件,编写测试代码调用发消息和收消息的函数
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/405071
推荐阅读
相关标签
  

闽ICP备14008679号