Python import自定义模块方法


Posted in Python onFebruary 12, 2015

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环境变量的值,找到具体模块的路径。这里仅介绍上面三种简单情况。

评论:

win下面cmd当前目录上运行python交互的时候, 当前目录如果是个python包,要在当前交互引入它, 也需要 sys.path.append(".."), 不过我个人的做法通常是sys.path.insert(0,"..")

c:/py25>cd sub 
c:/py25>python 
>>>#import sub #这里提示找不到 
>>>import sys 
>>>sys.path.insert(0,'..') #或者sys.path.append("..") 
>>>import sub #这里引入成功

貌似是大蛇的当前目录是"能识儿子不识父亲"的,

也就是要引入当前包的父包的话,要sys.path.insert(0,'../..')了...

以上所述是小编给大家介绍的Python import自定义模块方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python程序设计入门(3)数组的使用
Jun 16 Python
使用Python程序抓取新浪在国内的所有IP的教程
May 04 Python
Python多线程下载文件的方法
Jul 10 Python
python程序快速缩进多行代码方法总结
Jun 23 Python
python3 BeautifulSoup模块使用字典的方法抓取a标签内的数据示例
Nov 28 Python
Python hashlib加密模块常用方法解析
Dec 18 Python
python线程join方法原理解析
Feb 11 Python
Python内置函数locals和globals对比
Apr 28 Python
彻底解决Python包下载慢问题
Nov 15 Python
Python如何使用神经网络进行简单文本分类
Feb 25 Python
Python 读写 Matlab Mat 格式数据的操作
May 19 Python
python3操作redis实现List列表实例
Aug 04 Python
Python实现获取某天是某个月中的第几周
Feb 11 #Python
Python脚本实现下载合并SAE日志
Feb 10 #Python
Python常用内置函数总结
Feb 08 #Python
Python文件和目录操作详解
Feb 08 #Python
Python中操作MySQL入门实例
Feb 08 #Python
Python Web框架Flask下网站开发入门实例
Feb 08 #Python
Python中使用wxPython开发的一个简易笔记本程序实例
Feb 08 #Python
You might like
CI框架源码阅读,系统常量文件constants.php的配置
2013/02/28 PHP
详解php魔术方法(Magic methods)的使用方法
2016/02/14 PHP
Yii2 assets清除缓存的方法
2016/05/16 PHP
微信支付开发订单查询实例
2016/07/12 PHP
谈谈从phpinfo中能获取哪些值得注意的信息
2017/03/28 PHP
火狐4、谷歌12不支持Jquery Validator的解决方法分享
2011/06/20 Javascript
JavaScript:new 一个函数和直接调用函数的区别分析
2013/07/10 Javascript
Node.js实现简单聊天服务器
2014/06/20 Javascript
Javascript 拖拽雏形中的一些问题(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
再次谈论React.js实现原生js拖拽效果引起的一系列问题
2016/04/03 Javascript
jquery简单插件制作(fn.extend)完整实例
2016/05/24 Javascript
利用Js的console对象,在控制台打印调式信息测试Js的实现
2016/11/26 Javascript
C#微信小程序服务端获取用户解密信息实例代码
2017/03/10 Javascript
详解Angular结合zTree异步加载节点数据
2018/01/20 Javascript
JavaScript基于面向对象实现的无缝滚动轮播示例
2020/01/17 Javascript
基于Vue全局组件与局部组件的区别说明
2020/08/11 Javascript
Vue js with语句原理及用法解析
2020/09/03 Javascript
vuecli项目构建SSR服务端渲染的实现
2020/10/30 Javascript
python 中文字符串的处理实现代码
2009/10/25 Python
使用python和Django完成博客数据库的迁移方法
2018/01/05 Python
用tensorflow构建线性回归模型的示例代码
2018/03/05 Python
python画折线图的程序
2018/07/26 Python
对Python的zip函数妙用,旋转矩阵详解
2018/12/13 Python
让Python脚本暂停执行的几种方法(小结)
2019/07/11 Python
Python生态圈图像格式转换问题(推荐)
2019/12/02 Python
Python根据指定文件生成XML的方法
2020/06/29 Python
python七种方法判断字符串是否包含子串
2020/08/18 Python
What is the purpose of Void class? Void类的作用是什么?
2016/10/31 面试题
什么是Linux虚拟文件系统VFS
2012/01/31 面试题
大学生毕业自我鉴定范文
2013/11/03 职场文书
中专生自我鉴定范文
2014/02/02 职场文书
个人委托书怎么写
2014/04/04 职场文书
节能减耗标语
2014/06/21 职场文书
医学生自荐信范文
2015/03/05 职场文书
单位推荐信范文
2015/03/27 职场文书
班级班风口号大全
2015/12/25 职场文书