浅谈python import引入不同路径下的模块


Posted in Python onJuly 11, 2017

python 包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的路径。

下面将具体介绍几种常用情况:

(1)主程序与模块程序在同一目录下:

如下面程序结构:

`-- src
    |-- mod1.py
    `-- test1.py

若在程序test1.py中导入模块mod1, 则直接使用 import  mod1或from mod1 import *;

(2)主程序所在目录是模块所在目录的父(或祖辈)目录

如下面程序结构:

`-- src
    |-- mod1.py
    |-- mod2
    |   `-- mod2.py
    `-- test1.py

若在程序test1.py中导入模块mod2, 需要在mod2文件夹中建立空文件__init__.py文件(也可以在该文件中自定义输出模块接口); 然后使用 from mod2.mod2 import * 或import mod2.mod2.

(3)主程序导入上层目录中模块或其他目录(平级)下的模块

如下面程序结构:

`-- src
    |-- mod1.py 
    |-- mod2
    |   `-- mod2.py
    |-- sub
    |   `-- test2.py
    `-- test1.py

若在程序test2.py中导入模块mod1和mod2。首先需要在mod2下建立__init__.py文件(同(2)),src下不必建立该文件。然后调用方式如下:

下面程序执行方式均在程序文件所在目录下执行,如test2.py是在cd sub;之后执行python test2.py

而test1.py是在cd src;之后执行python test1.py; 不保证在src目录下执行python sub/test2.py成功。

   import sys
   sys.path.append("..")
   import mod1
   import mod2.mod2

 (4)从(3)可以看出,导入模块关键是能够根据sys.path环境变量的值,找到具体模块的路径。

这里仅介绍上面三种简单情况。

以上这篇浅谈python import引入不同路径下的模块就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python获取Linux下文件版本信息、公司名和产品名的方法
Oct 05 Python
在Docker上部署Python的Flask框架的教程
Apr 08 Python
python基础练习之几个简单的游戏
Nov 10 Python
Django shell调试models输出的SQL语句方法
Aug 29 Python
python实现获取单向链表倒数第k个结点的值示例
Oct 24 Python
Windows下PyCharm2018.3.2 安装教程(图文详解)
Oct 24 Python
python with (as)语句实例详解
Feb 04 Python
如何在django中添加日志功能
Feb 06 Python
基于pycharm 项目和项目文件命名规则的介绍
Jan 15 Python
Python图像处理之膨胀与腐蚀的操作
Feb 07 Python
PyTorch中的torch.cat简单介绍
Mar 17 Python
详解NumPy中的线性关系与数据修剪压缩
May 25 Python
python 环境变量和import模块导入方法(详解)
Jul 11 #Python
Python编写登陆接口的方法
Jul 10 #Python
CentOS中升级Python版本的方法详解
Jul 10 #Python
pygame 精灵的行走及二段跳的实现方法(必看篇)
Jul 10 #Python
Python 实现数据库更新脚本的生成方法
Jul 09 #Python
Python 实现数据库(SQL)更新脚本的生成方法
Jul 09 #Python
解决python文件字符串转列表时遇到空行的问题
Jul 09 #Python
You might like
PHP 简单数组排序实现代码
2009/08/05 PHP
模板引擎正则表达式调试小技巧
2011/07/20 PHP
php实现批量上传数据到数据库(.csv格式)的案例
2017/06/18 PHP
PHP的mysqli_sqlstate()函数讲解
2019/01/23 PHP
妙用Jquery的val()方法
2012/06/27 Javascript
jquery控制display属性为none或block
2014/03/31 Javascript
JavaScript插件化开发教程 (一)
2015/01/27 Javascript
JS实现从顶部下拉显示的带动画QQ客服特效代码
2015/10/24 Javascript
jQuery+Ajax实现无刷新操作
2016/01/04 Javascript
详解javascript事件绑定使用方法
2016/10/20 Javascript
解决bootstrap下拉菜单点击立即隐藏bug的方法
2017/06/13 Javascript
简单谈谈JS中的正则表达式
2017/09/11 Javascript
js实现图片局部放大效果详解
2019/03/18 Javascript
vue中datepicker的使用教程实例代码详解
2019/07/08 Javascript
微信小程序实现页面跳转传递参数(实体,对象)
2019/08/12 Javascript
浅谈JavaScript中等号、双等号、 三等号的区别
2020/08/06 Javascript
Python中的闭包详细介绍和实例
2014/11/21 Python
Python psutil模块简单使用实例
2015/04/28 Python
Python用list或dict字段模式读取文件的方法
2017/01/10 Python
fastcgi文件读取漏洞之python扫描脚本
2017/04/23 Python
pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换实例
2018/08/02 Python
linux安装python修改默认python版本方法
2019/03/31 Python
python使用pandas处理excel文件转为csv文件的方法示例
2019/07/18 Python
python快速编写单行注释多行注释的方法
2019/07/31 Python
Keras自动下载的数据集/模型存放位置介绍
2020/06/19 Python
Python中正则表达式对单个字符,多个字符和匹配边界等使用
2021/01/27 Python
html+css实现自定义图片上传按钮功能
2019/09/04 HTML / CSS
印度婴儿用品在线商店:Firstcry.com
2016/12/05 全球购物
缓解脚、腿和背部疼痛:Z-CoiL鞋
2019/03/12 全球购物
青年教师典范事迹材料
2014/01/31 职场文书
幼儿园教师岗位职责
2014/03/17 职场文书
党的群众路线教育实践活动对照检查材料(四风)
2014/09/27 职场文书
教师个人发展总结
2015/02/11 职场文书
python pyhs2 的安装操作
2021/04/07 Python
Python  lambda匿名函数和三元运算符
2022/04/19 Python
OpenFeign实现远程调用
2022/08/14 Java/Android