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程序员开发中常犯的10个错误
Jul 07 Python
详细解析Python中__init__()方法的高级应用
May 11 Python
tensorflow1.0学习之模型的保存与恢复(Saver)
Apr 23 Python
Python中staticmethod和classmethod的作用与区别
Oct 11 Python
Python判断以什么结尾以什么开头的实例
Oct 27 Python
Python数据报表之Excel操作模块用法分析
Mar 11 Python
python多线程与多进程及其区别详解
Aug 08 Python
Python turtle绘画象棋棋盘
Aug 21 Python
python写入数据到csv或xlsx文件的3种方法
Aug 23 Python
python pprint模块中print()和pprint()两者的区别
Feb 10 Python
利用Tensorboard绘制网络识别准确率和loss曲线实例
Feb 15 Python
浅谈JupyterNotebook导出pdf解决中文的问题
Apr 22 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(CodeIgniter)框架中的增删改查操作
2014/06/10 PHP
ThinkPHP写数组插入与获取最新插入数据ID实例
2014/11/03 PHP
微信公众平台开发之天气预报功能
2015/08/31 PHP
php中mkdir()函数的权限问题分析
2016/09/24 PHP
phpinfo无法显示的原因及解决办法
2019/02/15 PHP
javascript 另一种图片滚动切换效果思路
2012/04/20 Javascript
JavaScript实现梯形乘法表的方法
2015/04/25 Javascript
在JavaScript的jQuery库中操作AJAX的方法讲解
2015/08/15 Javascript
深入浅析JavaScript中prototype和proto的关系
2015/11/15 Javascript
详解微信小程序 wx.uploadFile 的编码坑
2017/01/23 Javascript
JS实现隔行换色的表格排序
2017/03/27 Javascript
基于jQuery Ajax实现下拉框无刷新联动
2017/12/06 jQuery
mocha的时序规则讲解
2019/02/16 Javascript
vue实现Excel文件的上传与下载功能的两种方式
2019/06/28 Javascript
深入浅出vue图片路径的实现
2019/09/04 Javascript
windows实现npm和cnpm安装步骤
2019/10/24 Javascript
[02:05]2014DOTA2西雅图国际邀请赛 BBC第二天小组赛总结
2014/07/11 DOTA
python中的对象拷贝示例 python引用传递
2014/01/23 Python
学习python类方法与对象方法
2016/03/15 Python
Python中Iterator迭代器的使用杂谈
2016/06/20 Python
如何用python整理附件
2018/05/13 Python
Python基于jieba库进行简单分词及词云功能实现方法
2018/06/16 Python
浅谈Django+Gunicorn+Nginx部署之路
2019/09/11 Python
Python英文文章词频统计(14份剑桥真题词频统计)
2019/10/13 Python
Django中的AutoField字段使用
2020/05/18 Python
Python使用Chrome插件实现爬虫过程图解
2020/06/09 Python
Python如何对齐字符串
2020/07/30 Python
Python如何测试stdout输出
2020/08/10 Python
怎样在 Applet 中建立自己的菜单(MenuBar/Menu)?
2012/06/20 面试题
汽车工程专业应届生求职信
2013/10/19 职场文书
职业生涯规划书前言
2014/04/15 职场文书
美术学专业求职信
2014/07/23 职场文书
2019年健身俱乐部的创业计划书
2019/08/26 职场文书
Django程序的优化技巧
2021/04/29 Python
python numpy中multiply与*及matul 的区别说明
2021/05/26 Python
Python可视化学习之seaborn绘制矩阵图详解
2022/02/24 Python