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为tornado添加recaptcha验证码功能
Feb 26 Python
简化Python的Django框架代码的一些示例
Apr 20 Python
在MAC上搭建python数据分析开发环境
Jan 26 Python
Python实战小程序利用matplotlib模块画图代码分享
Dec 09 Python
简单谈谈python基本数据类型
Sep 26 Python
pandas 将索引值相加的方法
Nov 15 Python
Python图像处理之直线和曲线的拟合与绘制【curve_fit()应用】
Dec 26 Python
PyQt5 实现字体大小自适应分辨率的方法
Jun 18 Python
深入浅析python3中的unicode和bytes问题
Jul 03 Python
python爬虫容易学吗
Jun 02 Python
python BeautifulSoup库的安装与使用
Dec 17 Python
python基于turtle绘制几何图形
Jun 15 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
PHP stristr() 函数(不区分大小写的字符串查找)
2010/06/03 PHP
php中截取中文字符串的代码小结
2011/07/17 PHP
Could not load type System.ServiceModel.Activation.HttpModule解决办法
2012/12/29 PHP
PHP PDOStatement:bindParam插入数据错误问题分析
2013/11/13 PHP
PHP序列化操作方法分析
2016/09/28 PHP
PHP实现微信申请退款功能
2018/10/01 PHP
laravel框架实现后台登录、退出功能示例
2019/10/31 PHP
用javascript父窗口控制只弹出一个子窗口
2007/04/10 Javascript
Javascript学习笔记之数组的遍历和 length 属性
2014/11/23 Javascript
jQuery实现统计复选框选中数量
2014/11/24 Javascript
Javascript中的五种数据类型详解
2014/12/26 Javascript
JS 对象属性相关(检查属性、枚举属性等)
2015/04/05 Javascript
jQuery 3.0 的 setter和getter 模式详解
2016/07/11 Javascript
最丑的时钟效果!js canvas时钟制作方法
2016/08/15 Javascript
D3.js实现雷达图的方法详解
2016/09/22 Javascript
微信小程序 开发MAP(地图)实例详解
2017/06/27 Javascript
基于nodejs+express4.X实现文件下载的实例代码
2017/07/13 NodeJs
javaScript中的空值和假值
2017/12/18 Javascript
微信小程序与webview交互实现支付功能
2019/06/07 Javascript
[05:05]DOTA2亚洲邀请赛 战队出场仪式
2015/02/07 DOTA
Python遍历目录并批量更换文件名和目录名的方法
2016/09/19 Python
django用户注册、登录、注销和用户扩展的示例
2018/03/19 Python
Python对切片命名的实现方法
2018/10/16 Python
python 实现dict转json并保存文件
2019/12/05 Python
Pycharm 2020年最新激活码(亲测有效)
2020/09/18 Python
使用python接受tgam的脑波数据实例
2020/04/09 Python
基于python实现生成指定大小txt文档
2020/07/20 Python
英国领先的电子、技术和办公用品购物网站:Ebuyer
2018/04/04 全球购物
普通PHP程序员笔试题
2016/01/01 面试题
如何实现一个自定义类的序列化
2012/05/22 面试题
2014年小学元旦活动方案
2014/02/12 职场文书
《可爱的动物》教学反思
2014/02/22 职场文书
小学生手册家长评语
2014/04/16 职场文书
运动会方队口号
2014/06/07 职场文书
综合素质评价个性与发展自我评价
2015/03/06 职场文书
欠条范文
2015/07/03 职场文书