python导入其他目录下模块的四种情况

 更新时间:2022年12月09日 10:04:23   作者:wzg2016  
在python工程中常常需要使用import引入自己编写的其他模块,但其它模块有时不在同一个文件夹下,下面这篇文章主要给大家介绍了关于python导入其他目录下模块的四种情况,需要的朋友可以参考下

关键:被导入模块所在文件夹的路径需要出现在sys.path中 

python中从其他目录中导入模块的关键是:系统(sys)能够找到通向模块文件的路径,即,sys.path中包含对应模块文件的路径。

python中导入其他目录下的模块,本文主要介绍以下四种情况:

  • 从当前目录下导入模块
  • 从当前目录的子目录中导入模块
  • 从当前目录的父目录导入模块
  • 通用:从任意文件夹路径下导入模块。

1. 从当前目录导入模块

这种情况的程序结构如下:

--base_dir
    |--module1.py
        def func1()
        def func2()
    |--module2.py

要想在module2.py中导入module1.py中的func1,func2函数,直接使用以下命令即可。

# 在module2.py中
from module1 import func1,func2

2. 从当前目录的子目录中导入模块

程序结构如下所示:

--base_dir
    |--son_dir
        ||--module1.py
            def func1()
            def func2()
    |--module2.py

此时,要想在module2.py中导入module1.py中的func1,func2函数,需要在module1.py所在的文件夹son_dir下添加一个__init__.py文件,只有这样,son_dir才会成为一个package,否则不能调用。

此时,程序结构如下:

--base_dir
    |--son_dir
        ||--__init__.py # 新增加的文件,可以为空,使son_dir变成可调用的package
        ||--module1.py
            def func1()
            def func2()
    |--module2.py

然后,就可以在module2.py中以以下形式引入module1.py中的文件。

# 在module2.py中
from son_dir.module1 import func1,func2

3. 从父目录中导入模块

程序结构示意图如下:

--base_dir
    |--module1.py
        def func1()
        def func2()
    |--son_dir
        ||--module2.py

我们想在 son_dir.module2.py中导入base_dir.module1.py中的func1,func2函数。

此时我们需要进行如下处理:

# 脚本 mudule2.py 中
import sys
sys.path.append("..") # 将父目录放入系统路径中,不需要再base_dir中增加__init__.py脚本。
# 备注:sys.path.append中的内容也可以是module1.py 所在文件夹的全局路径
from module1 import func1,func2

4. 通用:从任意文件夹路径下导入模块

如以上分析,python中导入某个模块,只需要该模块所在的文件夹路径在sys.path中即可,所以,我们可以用以下通用方式处理模块导入的问题。

程序结构示意图:

--any_dir1 # 任意文件夹位置
    |--mudule1.py 
        def func1()
        def func2()
 
--any_dir2 # 任意文件夹位置
    |--module2.py 

我们想在module2.py中导入module1中的func1,func2,与情况3相似,我们可以用以下处理:

# 脚本 mudule2.py 中
import sys
sys.path.append("/global/path/to/any_dir1") # 将module1所在的文件夹路径放入sys.path中
from module1 import func1,func2

参考:https://blog.csdn.net/zhang89xiao/article/details/53521366

总结

到此这篇关于python导入其他目录下模块的四种情况的文章就介绍到这了,更多相关python导入其他目录模块内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Django框架静态文件处理、中间件、上传文件操作实例详解

    Django框架静态文件处理、中间件、上传文件操作实例详解

    这篇文章主要介绍了Django框架静态文件处理、中间件、上传文件操作,结合实例形式详细分析了Django框架中静态文件处理、中间件及上传文件操作相关实现技巧与注意事项,需要的朋友可以参考下
    2020-02-02
  • python 执行函数的九种方法

    python 执行函数的九种方法

    这篇文章主要介绍了python 执行函数的九种方法,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-03-03
  • python 实现查询Neo4j多节点的多层关系

    python 实现查询Neo4j多节点的多层关系

    今天小编就为大家分享一篇python 实现查询Neo4j多节点的多层关系,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • python实现获取序列中最小的几个元素

    python实现获取序列中最小的几个元素

    这篇文章主要介绍了python实现获取序列中最小的几个元素,是非常实用的技巧,需要的朋友可以参考下
    2014-09-09
  • python析构函数用法及注意事项

    python析构函数用法及注意事项

    在本篇文章里小编给大家整理的是一篇关于python析构函数用法及注意事项,有需要的朋友们可以学习参考下。
    2021-06-06
  • 利用python实现简单的邮件发送客户端示例

    利用python实现简单的邮件发送客户端示例

    下面小编就为大家分享一篇利用python实现简单的邮件发送客户端示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • Python正则匹配判断手机号是否合法的方法

    Python正则匹配判断手机号是否合法的方法

    今天小编就为大家分享一篇Python正则匹配判断手机号是否合法的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • 基于Python制作简单的音乐播放器

    基于Python制作简单的音乐播放器

    这篇文章主要为大家详细介绍了如何基于Python制作简单的音乐播放器,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以了解下
    2024-02-02
  • Python实现识别图片和扫描PDF中的文字

    Python实现识别图片和扫描PDF中的文字

    在处理扫描的PDF和图片时,文字信息往往无法直接编辑、搜索或复制,这给信息提取和分析带来了诸多不便,所以本文将介绍如何使用Python及相关OCR库实现对图片和扫描PDF中文字的识别,需要的可以了解下
    2025-02-02
  • python 中collections的 deque使用详解

    python 中collections的 deque使用详解

    这篇文章主要介绍了python中collections的deque使用详解,deque是一个双端队列,如果要经常从两端append的数据,选择这个数据结构就比较好了,更多相关内容,需要的小伙伴可以参考下面文章内容
    2022-09-09

最新评论