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


Posted in Python onOctober 27, 2017

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

使用python进行程序编写时,经常会调用不同目录下的模块及函数。本篇博客针对常见的模块调用讲解导入模块的方法。

1. 同级目录下的调用

目录结构如下:

? src 
|? mod1.py 
|? test1.py

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

2. 调用子

*import mod1*或from mod1 import *;

目录下的模块

目录结构如下:

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

这时,如果想在程序test1.py中导入模块mod2.py ,可以在lib件夹中建立空文件__init__.py文件

新的目录结构如下:

? src 
|? mod1.py 
|? lib 
| |?__init__.py 
| |? mod2.py 
|? test1.py

然后使用:

from lib.mod2 import *或import lib.mod2.

3. 调用上级目录下的文件

目录结构如下:

? 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('C:\\test\\A\\C')
import mod1
import lib.mod2

需要注意的一点是:sys.path添加目录时注意是在windows还是在Linux下,windows下需要‘\\'否则会出错。

补充__init__.py

在python模块的每一个包中,都有一个__init__.py文件(这个文件定义了包的属性和方法)然后是一些模块文件和子目录,假如子目录中也有__init__.py 那么它就是这个包的子包了。当你将一个包作为模块导入(比如从 xml 导入 dom )的时候,实际上导入了它的__init__.py 文件。

一个包是一个带有特殊文件 __init__.py 的目录。__init__.py 文件定义了包的属性和方法。其实它可以什么也不定义;可以只是一个空文件,但是必须存在。如果 __init__.py 不存在,这个目录就仅仅是一个目录,而不是一个包,它就不能被导入或者包含其它的模块和嵌套包。

__init__.py 中还有一个重要的变量,叫做__all__。

如果此时目录如下

? src 
|? mod1.py 
|? lib 
| |? mod2.py 
| |? mod3.py 
| |? sub 
| |? | |? mod3.py

我们有时会使出一招“全部导入”,也就是这样:

from lib import *

这时 import 就会把注册在包__init__.py 文件中 __all__ 列表中的子模块和子包导入到当前作用域中来。比如:

#文件__init__.py

__all__ = ["mod2", "mod3", "sub"]

以上这篇Python在不同目录下导入模块的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现获取Ip归属地等信息
Aug 27 Python
Python算法输出1-9数组形成的结果为100的所有运算式
Nov 03 Python
Django-Rest-Framework 权限管理源码浅析(小结)
Nov 12 Python
Python实现合并excel表格的方法分析
Apr 13 Python
python文件处理fileinput使用方法详解
Jan 02 Python
python实现引用其他路径包里面的模块
Mar 09 Python
Python 判断时间是否在时间区间内的实例
May 16 Python
python实现逢七拍腿小游戏的思路详解
May 26 Python
浅析Python中字符串的intern机制
Oct 03 Python
pytorch 把图片数据转化成tensor的操作
Mar 04 Python
一篇文章带你了解Python和Java的正则表达式对比
Sep 15 Python
浅析python中特殊文件和特殊函数
Feb 24 Python
Django视图之ORM数据库查询操作API的实例
Oct 27 #Python
浅谈python函数之作用域(python3.5)
Oct 27 #Python
python+pyqt实现右下角弹出框
Oct 26 #Python
python中模块的__all__属性详解
Oct 26 #Python
Python内建函数之raw_input()与input()代码解析
Oct 26 #Python
python分布式环境下的限流器的示例
Oct 26 #Python
Python Nose框架编写测试用例方法
Oct 26 #Python
You might like
php操作mysql数据库的基本类代码
2014/02/25 PHP
php隐藏实际地址的文件下载方法
2015/04/18 PHP
PHP中CheckBox多选框上传失败的代码写法
2017/02/13 PHP
PHP实现的简单对称加密与解密方法实例小结
2017/08/28 PHP
PHP PDOStatement::rowCount讲解
2019/02/01 PHP
PHP中引用类型和值类型功能与用法示例
2019/02/26 PHP
document.forms[].submit()使用介绍
2014/02/19 Javascript
JavaScript数据结构与算法之栈详解
2015/03/12 Javascript
jQuery.deferred对象使用详解
2016/03/18 Javascript
Es6 写的文件import 起来解决方案详解
2016/12/13 Javascript
详解vue-Resource(与后端数据交互)
2017/01/16 Javascript
React-router v4 路由配置方法小结
2017/08/08 Javascript
使用vue-cli创建项目的图文教程(新手入门篇)
2018/05/02 Javascript
vue项目打包部署_nginx代理访问方法详解
2018/09/20 Javascript
three.js实现炫酷的全景3D重力感应
2018/12/30 Javascript
ES6常用小技巧总结【去重、交换、合并、反转、迭代、计算等】
2019/12/21 Javascript
JavaScript实现音乐导航效果
2020/11/19 Javascript
Python3.5.3下配置opencv3.2.0的操作方法
2018/04/02 Python
pytorch 输出中间层特征的实例
2019/08/17 Python
python kafka 多线程消费者&手动提交实例
2019/12/21 Python
python数据类型可变不可变知识点总结
2020/03/06 Python
五分钟带你搞懂python 迭代器与生成器
2020/08/30 Python
python 可视化库PyG2Plot的使用
2021/01/21 Python
德国电子商城:ComputerUniverse
2017/04/21 全球购物
药学专业大学生自荐信
2013/09/28 职场文书
商务助理岗位职责
2013/11/13 职场文书
资料员的岗位职责
2013/11/20 职场文书
光荣入党自我鉴定
2014/01/22 职场文书
中国梦演讲稿3分钟
2014/08/19 职场文书
英语课外活动总结
2014/08/27 职场文书
党的群众路线教育实践活动批评与自我批评发言稿
2014/10/16 职场文书
2015年班级元旦晚会活动总结
2014/11/28 职场文书
先进党员事迹材料
2014/12/24 职场文书
瞿秋白纪念馆观后感
2015/06/10 职场文书
python中pycryto实现数据加密
2022/04/29 Python
python manim实现排序算法动画示例
2022/08/14 Python