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之大话题小函数(2)
Oct 10 Python
python使用wxPython打开并播放wav文件的方法
Apr 24 Python
Python中字符串的常见操作技巧总结
Jul 28 Python
Python 模块EasyGui详细介绍
Feb 19 Python
Python实现控制台中的进度条功能代码
Dec 22 Python
python笔记_将循环内容在一行输出的方法
Aug 08 Python
Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】
Oct 30 Python
Python数据可视化:箱线图多种库画法
Nov 06 Python
Python netmiko模块的使用
Feb 14 Python
完美解决TensorFlow和Keras大数据量内存溢出的问题
Jul 03 Python
详解PyQt5中textBrowser显示print语句输出的简单方法
Aug 07 Python
基于Python爬取股票数据过程详解
Oct 21 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自定义函数返回多个值
2006/11/26 PHP
PHP读取网页文件内容的实现代码(fopen,curl等)
2011/06/23 PHP
PHP中的命名空间相关概念浅析
2015/01/22 PHP
php支付宝系列之电脑网站支付
2018/05/30 PHP
IE和firefox浏览器的event事件兼容性汇总
2009/12/06 Javascript
自己实现string的substring方法 人民币小写转大写,数字反转,正则优化
2012/09/02 Javascript
js跨浏览器实现将字符串转化为xml对象的方法
2013/09/25 Javascript
判断javascript的数据类型(示例代码)
2013/12/11 Javascript
jquery代码实现简单的随机图片瀑布流效果
2015/04/20 Javascript
浅谈利用JavaScript进行的DDoS攻击原理与防御
2015/06/04 Javascript
详解JavaScript基于面向对象之创建对象(1)
2015/12/10 Javascript
jQuery中事件与动画的总结分享
2016/05/24 Javascript
JS实现pasteHTML兼容ie,firefox,chrome的方法
2016/06/22 Javascript
vue.js中指令Directives详解
2017/03/20 Javascript
重新理解JavaScript的六种继承方式
2017/03/24 Javascript
详解如何构建Angular项目目录结构
2017/07/13 Javascript
JS实现div模块的截图并下载功能
2017/10/17 Javascript
JavaScript引用类型之基本包装类型实例分析【Boolean、Number和String】
2018/08/09 Javascript
Vue.js 时间转换代码及时间戳转时间字符串
2018/10/16 Javascript
解决axios post 后端无法接收数据的问题
2019/10/29 Javascript
JavaScript实现缓动动画
2020/11/25 Javascript
[37:37]DAC2018 4.4 淘汰赛 Optic vs Mineski 第二场
2018/04/05 DOTA
Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)
2015/04/28 Python
简单讲解Python编程中namedtuple类的用法
2016/06/21 Python
python opencv之SURF算法示例
2018/02/24 Python
Python实现的微信红包提醒功能示例
2019/08/22 Python
python3 求约数的实例
2019/12/05 Python
基于Python把网站域名解析成ip地址
2020/05/25 Python
CSS3制作Dropdown下拉菜单的方法
2015/07/18 HTML / CSS
Melijoe美国官网:法国奢侈童装购物网站
2017/04/19 全球购物
建材投资建议书
2014/05/16 职场文书
节能环保家庭事迹材料
2014/08/27 职场文书
2016教师读书思廉心得体会
2016/01/23 职场文书
python基础学习之递归函数知识总结
2021/05/26 Python
Pytorch中的学习率衰减及其用法详解
2021/06/05 Python
Redis特殊数据类型bitmap位图
2022/06/01 Redis