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

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

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

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

1. 从当前目录导入模块

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

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

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

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

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

程序结构如下所示:

--base_dir|--son_dir||--module1.pydef 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.pydef func1()def func2()|--module2.py

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

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

3. 从父目录中导入模块

程序结构示意图如下:

--base_dir|--module1.pydef 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 导入其他目录下的模块相关推荐

  1. python导入同目录下的模块_如何从同一目录下的模块导入?

    我试图制作一个Python3.6包,但是在从包中导入时遇到了ModuleNotFound错误.包具有以下结构:project/ project/ cache/ default.py interface ...

  2. python导入上级目录下文件_python import 上级目录的导入

    python import 上级目录的导入 有时候我们可能需要import另一个路径下的python文件,例如下面这个目录结构,我们想要在_train.py里import在networks目录下的_l ...

  3. python导入上级目录_Python导入上一级/下一级/任一级目录下的.py文件问题

    有如下目录: -python ----file1 ---------file1_1 ------------------pfile1_1.py ---------pfile1.py ----file2 ...

  4. python怎么导入txt文件夹-python读取一个目录下所有txt里面的内容方法

    实例如下所示: import os allFileNum = 0 def printPath(level, path): global allFileNum ''''' 打印一个目录下的所有文件夹和文 ...

  5. python导入同级目录 上级目录文件

    pycharm不会将当前文件目录自动加入自己的sourse_path.右键make_directory as-->Sources Root将当前工作的文件夹加入source_path就可以了. ...

  6. python打开一个文件夹下所有txt文件-python读取一个目录下所有txt里面的内容方法...

    实例如下所示: import os allFileNum = 0 def printPath(level, path): global allFileNum ''''' 打印一个目录下的所有文件夹和文 ...

  7. python 找出图片中的差异点,python opencv对目录下图片进行去重的技巧

    使用python opencv对目录下图片进行去重的方法 版本: 平台:ubuntu 14 / I5 / 4G内存 python版本:python2.7 opencv版本:2.13.4 依赖: 如果系 ...

  8. 如何把 .wrl 文件转成 .ply 文件(python 一次性转换目录下所有文件)

    一.概述 wrl :virtual reality world 最近在找一些大场景点云文件,找到了一些 .wrl 文件,但是这些文件需要专门的软件打开才能显示,而我一般用的都是meshlab,所以需要 ...

  9. python 遍历搜索 目录下所有文件

    python 遍历搜索 目录下所有文件 import osdef search_dir_all_files(input_dir):files_list=[]for root, dirs, files ...

最新文章

  1. 阿里技术文档:Redis+Nginx+Spring全家桶+Dubbo精选
  2. python利器下载-Python打包利器:auto-py-to-exe
  3. 框架优点_铝型材框架相比其他框架的优点
  4. 电压压力蕊片_陶瓷压力传感器工作原理、结构及分类
  5. Leetcode91. Decode Ways
  6. 踢向《英雄王座》的面目全非脚
  7. sklearn特征选择类库使用小结
  8. 华数机器人旋转编程_华数机器人离线编程软件简介与InteRobot2018 新增功能
  9. 论文复现:Expressive Body Capture
  10. oracle 10g固定执行计划,oracle 10g执行计划 (转帖)
  11. 2021年高教杯数学建模国赛C题的解题过程附全部代码以及参赛论文(百度网盘)
  12. Excel2016 怎么做数据分类汇总
  13. matlab tecplot data,MATLAB讀取TECPLOT笛卡爾網格三維流場數據
  14. python timeit.timer_python之timeit模块
  15. StarUML 代码生成(C++)
  16. 电脑的远程控制是什么
  17. 某手机在-20度环境下,只能读到电池温度为-18℃
  18. CLIP 改进工作串讲(下)
  19. C语言中对结构体赋初值
  20. 无线条形码刷枪工作频率问题

热门文章

  1. zblog主题php下载,免费ZBLOG PHP主题 - ZBP免费网站目录主题
  2. 如何查看python的工作目录_Python3基础 os listdir curdir查看当前工作目录的所有文件的名字...
  3. jmoiron sqlx mysql_mysql 一(或其他数据库)
  4. 爆炸性环境设备通用要求标准_防爆电气设备的适用环境及温度要求
  5. c语言函数官网,c语言函数
  6. log4j.xml示例_log4j.xml示例配置
  7. spring boot示例_Spring Boot REST示例
  8. swift 的init_Swift init()
  9. android圆角视图_Android图库视图示例教程
  10. Python将字符串转换为浮点数