浅谈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 相关文章推荐
pygame学习笔记(4):声音控制
Apr 15 Python
python实现同时给多个变量赋值的方法
Apr 30 Python
详解Python的Django框架中的templates设置
May 11 Python
Python中字符串的修改及传参详解
Nov 30 Python
Python编写一个优美的下载器
Apr 15 Python
Python把csv数据写入list和字典类型的变量脚本方法
Jun 15 Python
Python pycharm 同时加载多个项目的方法
Jan 17 Python
PYQT5实现控制台显示功能的方法
Jun 25 Python
Python进阶之迭代器与迭代器切片教程
Jan 29 Python
python判断正负数方式
Jun 03 Python
python实现npy格式文件转换为txt文件操作
Jul 01 Python
获取python运行输出的数据并解析存为dataFrame实例
Jul 07 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脚本的10个技巧(6)
2006/10/09 PHP
php获取文件内容最后一行示例
2014/01/09 PHP
Jquery创建一个层当鼠标移动到层上面不消失效果
2013/12/12 Javascript
input输入框鼠标焦点提示信息
2015/03/17 Javascript
jQuery中dom元素上绑定的事件详解
2015/04/24 Javascript
JavaScript更改字符串的大小写
2015/05/07 Javascript
javascript实现全角半角检测的方法
2015/07/23 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
2015/08/05 Javascript
JS获取当前页面名称的简单实例
2016/08/19 Javascript
js闭包用法实例详解
2016/12/13 Javascript
巧用canvas
2017/01/21 Javascript
vue动态路由实现多级嵌套面包屑的思路与方法
2017/08/16 Javascript
前端开发不得不知的10个最佳ES6特性
2017/08/30 Javascript
利用百度地图API获取当前位置信息的实例
2017/11/06 Javascript
Vue集成Iframe页面的方法示例
2017/12/12 Javascript
JavaScript引用类型Array实例分析
2018/07/24 Javascript
Vue循环组件加validate多表单验证的实例
2018/09/18 Javascript
vue项目引入字体.ttf的方法
2018/09/28 Javascript
JavaScript实现的开关灯泡点击切换特效示例
2019/07/08 Javascript
layui实现给某一列加点击事件
2019/10/26 Javascript
vue 百度地图(vue-baidu-map)绘制方向箭头折线实例代码详解
2020/04/28 Javascript
javascript实现评分功能
2020/06/24 Javascript
javascript全局自定义鼠标右键菜单
2020/12/08 Javascript
python zip文件 压缩
2008/12/24 Python
Django重置migrations文件的方法步骤
2019/05/01 Python
Python 3.10 的首个 PEP 诞生,内置类型 zip() 迎来新特性(推荐)
2020/07/03 Python
惠普加拿大在线商店:HP加拿大
2017/09/15 全球购物
美体小铺波兰官方网站:The Body Shop波兰
2019/09/03 全球购物
C#里面如何倒序排列一个数组的元素?
2013/06/21 面试题
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的
2015/07/24 面试题
求职信范文怎么写
2014/01/29 职场文书
2014年度培训工作总结
2014/11/27 职场文书
金砖之国观后感
2015/06/11 职场文书
入队仪式主持词
2015/07/04 职场文书
MySQL表的增删改查(基础)
2021/04/05 MySQL
Python如何导出导入所有依赖包详解
2021/06/08 Python