目录
一、路径
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 文件,编写测试代码调用发消息和收消息的函数