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代码检查工具pylint 让你的python更规范
Sep 05 Python
Python脚本实现集群检测和管理功能
Mar 06 Python
Django1.7+python 2.78+pycharm配置mysql数据库
Oct 09 Python
Python字典,函数,全局变量代码解析
Dec 18 Python
Python学生成绩管理系统简洁版
Apr 05 Python
python3中获取文件当前绝对路径的两种方法
Apr 26 Python
Python+OpenCV图片局部区域像素值处理改进版详解
Jan 23 Python
十行代码使用Python写一个USB病毒
Jun 21 Python
pyenv与virtualenv安装实现python多版本多项目管理
Aug 17 Python
python list转置和前后反转的例子
Aug 26 Python
如何表示python中的相对路径
Jul 08 Python
Python编程源码报错解决方法总结经验分享
Oct 05 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 COOKIE立即生效,不用刷新就可以使用
2011/03/09 PHP
关于尾递归的使用详解
2013/05/02 PHP
PHP使用mkdir创建多级目录的方法
2015/12/22 PHP
JS高级笔记
2011/07/13 Javascript
javascript 使td内容不换行不撑开
2012/11/29 Javascript
js中AppendChild与insertBefore的用法详细解析
2013/12/16 Javascript
javascript实现的一个随机点名功能
2014/08/26 Javascript
jQuery中contents()方法用法实例
2015/01/08 Javascript
实例解析jQuery中proxy()函数的用法
2016/05/24 Javascript
快速解决js动态改变dom元素属性后页面及时渲染的问题
2016/07/06 Javascript
使用plupload自定义参数实现多文件上传
2016/07/19 Javascript
jQueryUI Datepicker组件设置日期高亮
2016/10/13 Javascript
基于jPlayer三分屏的制作方法
2016/12/21 Javascript
微信小程序 开发经验整理
2017/02/15 Javascript
第一次记录Bootstrap table学习笔记(1)
2017/05/18 Javascript
小程序绑定用户方案优化小结
2019/05/15 Javascript
vue+element加入签名效果(移动端可用)
2019/06/17 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
2020/07/22 Javascript
python实现图片变亮或者变暗的方法
2015/06/01 Python
Python 的描述符 descriptor详解
2016/02/27 Python
OpenCV-Python实现轮廓检测实例分析
2018/01/05 Python
Python timeit模块的使用实践
2020/01/13 Python
使用 Python 读取电子表格中的数据实例详解
2020/04/17 Python
基于keras中的回调函数用法说明
2020/06/17 Python
html5配合css3实现带提示文字的输入框(摆脱js)
2013/03/08 HTML / CSS
给排水专业应届生求职信
2013/10/12 职场文书
商场拾金不昧表扬信
2014/01/13 职场文书
幼儿园小班评语大全
2014/04/17 职场文书
2014年建筑工程工作总结
2014/12/03 职场文书
考勤制度通知
2015/04/25 职场文书
安全教育日主题班会
2015/08/13 职场文书
2016年校园重阳节广播稿
2015/12/18 职场文书
2019开业庆典剪彩仪式主持词!
2019/07/22 职场文书
详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)
2021/07/01 HTML / CSS
MongoDB修改oplog大小的四种方法
2022/04/11 MongoDB
Vue2项目中对百度地图的封装使用详解
2022/06/16 Vue.js