我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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导入其他目录模块内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

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

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

Python在不同目录下导入模块的实现方法

python在不同层级目录import模块的方法 使用python进行程序编写时,经常会调用不同目录下的模块及函数。本篇博客针对常见的模块调用讲解导入模块的方法。 1. 同级目录下的调用 目录结构如下:? src |? mod1.py
2022-06-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录