python在不同层级目录import模块的方法


Posted in Python onJanuary 31, 2016

使用python进行程序编写时,经常会使用第三方模块包。这种包我们可以通过python setup install 进行安装后,通过import XXX或from XXX import yyy 进行导入。不过如果是自己遍写的依赖包,又不想安装到python的相应目录,可以放到本目录里进行import进行调用;为了更清晰的理清程序之间的关系,例如我们会把这种包放到lib目录再调用。本篇就针对常见的模块调用方法汇总下。

一、同级目录下的调有

程序结构如下:

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

若在程序test1.py中导入模块mod1, 则直接使用

import mod1

from mod1 import *;

二、调用子目录下的模块

程序结构如下:

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

这时看到test1.py和lib目录(即mod2.py的父级目录),如果想在程序test1.py中导入模块mod2.py ,可以在lib件夹中建立空文件__init__.py文件(也可以在该文件中自定义输出模块接口),然后使用:

from lib.mod2 import *

import lib.mod2.

三、调用上级目录下的文件

程序结构如下:

-- src
    |-- mod1.py
    |-- lib
    |    |-- mod2.py
    |-- sub
    |    |-- test2.py

这里想要实现test2.py调用mod1.py和mod2.py ,做法是我们先跳到src目录下面,直接可以调用mod1,然后在lib上当下建一个空文件__init__.py ,就可以像第二步调用子目录下的模块一样,通过import  lib.mod2进行调用了。具体代码如下:

import sys
sys.path.append("..")
import mod1
import mod2.mod2
Python 相关文章推荐
Python的Django中将文件上传至七牛云存储的代码分享
Jun 03 Python
让Django支持Sql Server作后端数据库的方法
May 29 Python
python中reader的next用法
Jul 24 Python
python scipy求解非线性方程的方法(fsolve/root)
Nov 12 Python
python利用wx实现界面按钮和按钮监听和字体改变的方法
Jul 17 Python
python函数的作用域及关键字详解
Aug 20 Python
opencv调整图像亮度对比度的示例代码
Sep 27 Python
Numpy之reshape()使用详解
Dec 26 Python
python不同系统中打开方法
Jun 23 Python
python飞机大战游戏实例讲解
Dec 04 Python
用Python自动清理系统垃圾的实现
Jan 18 Python
python3实现常见的排序算法(示例代码)
Jul 04 Python
在Python中移动目录结构的方法
Jan 31 #Python
python嵌套函数使用外部函数变量的方法(Python2和Python3)
Jan 31 #Python
python 爬取微信文章
Jan 30 #Python
python生成验证码图片代码分享
Jan 28 #Python
详解Python网络爬虫功能的基本写法
Jan 28 #Python
Python3实现Web网页图片下载
Jan 28 #Python
Python正则获取、过滤或者替换HTML标签的方法
Jan 28 #Python
You might like
php 连接mysql连接被重置的解决方法
2011/02/15 PHP
php小型企业库存管理系统的设计与实现代码
2011/05/16 PHP
PHP实现过滤各种HTML标签
2015/05/17 PHP
CI框架的安全性分析
2016/05/18 PHP
PHP基于堆栈实现的高级计算器功能示例
2017/09/15 PHP
使用PHP开发留言板功能
2019/11/19 PHP
Javascript操纵Cookie实现购物车程序
2007/02/15 Javascript
简单通用的JS滑动门代码
2008/12/19 Javascript
Javascript 入门基础学习
2010/03/10 Javascript
js 绑定带参数的事件以及手动触发事件
2010/04/27 Javascript
YUI模块开发原理详解
2013/11/18 Javascript
node.js操作mongoDB数据库示例分享
2014/11/26 Javascript
Javascript中的五种数据类型详解
2014/12/26 Javascript
jQuery中mouseover事件用法实例
2014/12/26 Javascript
js+html5实现canvas绘制简单矩形的方法
2015/06/05 Javascript
JQuery ZTree使用方法详解
2017/01/07 Javascript
使用原生的javascript来实现轮播图
2017/02/24 Javascript
用Fundebug插件记录网络请求异常的方法
2019/02/21 Javascript
JavaScript实现拖拽效果
2020/03/16 Javascript
javascript+Canvas实现画板功能
2020/06/23 Javascript
[01:16]2014DOTA2 TI专访C9战队EE:中国五强中会占三席
2014/07/10 DOTA
[54:27]TNC vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[43:14]Liquid vs Optic 2018国际邀请赛淘汰赛BO3 第二场 8.21
2018/08/22 DOTA
python调用java模块SmartXLS和jpype修改excel文件的方法
2015/04/28 Python
python+influxdb+shell编写区域网络状况表
2018/07/27 Python
pymongo中聚合查询的使用方法
2019/03/22 Python
jupyter notebook 重装教程
2020/04/16 Python
TensorFlow tf.nn.softmax_cross_entropy_with_logits的用法
2020/04/19 Python
python百行代码自制电脑端网速悬浮窗的实现
2020/05/12 Python
Python importlib模块重载使用方法详解
2020/10/13 Python
世界上最悠久的自行车制造商:Ribble Cycles
2017/03/18 全球购物
捷克电器和DJ设备网上商店:Electronic-star
2017/07/18 全球购物
zooplus德国:便宜地订购动物用品、动物饲料、动物食品
2020/05/06 全球购物
2014年清明节寄语
2014/04/03 职场文书
SpringBoot 集成Redis 过程
2021/06/02 Redis
springboot集成flyway自动创表的详细配置
2021/06/26 Java/Android