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字符串替换示例
Apr 24 Python
从Python的源码来解析Python下的freeblock
May 11 Python
深入解析Python的Tornado框架中内置的模板引擎
Jul 11 Python
python发送告警邮件脚本
Sep 17 Python
pandas使用apply多列生成一列数据的实例
Nov 28 Python
python的turtle库使用详解
May 10 Python
python递归下载文件夹下所有文件
Aug 31 Python
Python实现生成密码字典的方法示例
Sep 02 Python
在jupyter notebook 添加 conda 环境的操作详解
Apr 10 Python
python 数据分析实现长宽格式的转换
May 18 Python
pycharm 关掉syntax检查操作
Jun 09 Python
Python读写csv文件流程及异常解决
Oct 20 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
咖啡风味 世界咖啡主要分布分布 咖啡的生长要求
2021/03/06 新手入门
PHP+Tidy-完美的XHTML纠错+过滤
2007/04/10 PHP
smarty模板引擎中内建函数if、elseif和else的使用方法
2015/01/22 PHP
PHP SPL标准库之接口(Interface)详解
2015/05/11 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
2018/10/12 PHP
Nginx+php配置文件及原理解析
2020/12/09 PHP
javascript操作cookie的文章(设置,删除cookies)
2010/04/01 Javascript
xheditor与validate插件冲突的解决方案
2010/04/15 Javascript
JS+css 图片自动缩放自适应大小
2013/08/08 Javascript
jQuery中hide()方法用法实例
2014/12/24 Javascript
jQuery中 delegate使用的问题
2015/07/03 Javascript
JS操作XML实例总结(加载与解析XML文件、字符串)
2015/12/08 Javascript
JavaScript的Number对象的toString()方法
2015/12/18 Javascript
bootstrap模态框跳转到当前模板页面 框消失了而背景存在问题的解决方法
2020/11/30 Javascript
JavaScript JMap类定义与使用方法示例
2019/01/22 Javascript
node.js监听文件变化的实现方法
2019/04/17 Javascript
微信小程序 select 下拉框组件功能
2019/09/09 Javascript
jQuery实现简易聊天框
2020/02/08 jQuery
python代码制作configure文件示例
2014/07/28 Python
在windows下Python打印彩色字体的方法
2018/05/15 Python
Python 中的lambda函数介绍
2018/10/10 Python
Python对HTML转义字符进行反转义的实现方法
2019/04/28 Python
基于python的Paxos算法实现
2019/07/03 Python
Python Django实现layui风格+django分页功能的例子
2019/08/29 Python
Python正则表达式学习小例子
2020/03/03 Python
html5 canvas-2.用canvas制作一个猜字母的小游戏
2013/01/07 HTML / CSS
时尚设计师手表:The Watch Cabin
2018/10/06 全球购物
英国领先的在线高尔夫商店:Gamola Golf
2019/11/16 全球购物
介绍一下Linux文件的记录形式
2012/04/18 面试题
linux面试题参考答案(9)
2016/01/29 面试题
文科教师毕业的自我评价
2014/01/16 职场文书
年终考核评语
2014/01/19 职场文书
采购经理岗位职责
2014/02/16 职场文书
2014光棍节大学生联谊活动方案
2014/10/10 职场文书
公司规章制度范本
2015/08/03 职场文书
vue-cli4.5.x快速搭建项目
2021/05/30 Vue.js