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实现支持目录FTP上传下载文件的方法
Jun 03 Python
python UNIX_TIMESTAMP时间处理方法分析
Apr 18 Python
13个最常用的Python深度学习库介绍
Oct 28 Python
python xlsxwriter创建excel图表的方法
Jun 11 Python
深入分析python中整型不会溢出问题
Jun 18 Python
Python中类似于jquery的pyquery库用法分析
Dec 02 Python
浅谈Python中的异常和JSON读写数据的实现
Feb 27 Python
django处理select下拉表单实例(从model到前端到post到form)
Mar 13 Python
详解Flask前后端分离项目案例
Jul 24 Python
在 Python 中使用 MQTT的方法
Aug 18 Python
Jupyter Notebook添加代码自动补全功能的实现
Jan 07 Python
5个pandas调用函数的方法让数据处理更加灵活自如
Apr 24 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
CodeIgniter框架URL路由总结
2014/09/03 PHP
php中chdir()函数用法实例
2014/11/13 PHP
MySql数据库查询结果用表格输出PHP代码示例
2015/03/20 PHP
Zend Framework生成验证码并实现验证码验证功能(附demo源码下载)
2016/03/22 PHP
PHP页面输出搜索后跳转下一页的处理方法
2016/09/30 PHP
PHP Trait功能与用法实例分析
2020/06/03 PHP
JQuery 学习笔记 选择器之一
2009/07/23 Javascript
javascript 构建一个xmlhttp对象池合理创建和使用xmlhttp对象
2010/01/15 Javascript
仅IE6/7/8中innerHTML返回值忽略英文空格的问题
2011/04/07 Javascript
JS如何将数字类型转化为没3个一个逗号的金钱格式
2014/01/27 Javascript
Nodejs+express+html5 实现拖拽上传
2014/08/08 NodeJs
手机端页面rem宽度自适应脚本
2015/05/20 Javascript
Vue导出json数据到Excel电子表格的示例
2017/12/04 Javascript
jquery实现楼层滚动效果
2018/01/01 jQuery
基于JavaScript实现简单的音频播放功能
2018/01/07 Javascript
浅谈React中组件间抽象
2018/01/27 Javascript
Vue服务器渲染Nuxt学习笔记
2018/01/31 Javascript
vue.js将时间戳转化为日期格式的实现代码
2018/06/05 Javascript
解决ng-repeat产生的ng-model中取不到值的问题
2018/10/02 Javascript
js纯前端实现腾讯cos文件上传功能的示例代码
2019/05/14 Javascript
vue 需求 data中的数据之间的调用操作
2020/08/05 Javascript
python链接Oracle数据库的方法
2015/06/28 Python
Python统计日志中每个IP出现次数的方法
2015/07/06 Python
Python教程之全局变量用法
2016/06/27 Python
python与php实现分割文件代码
2017/03/06 Python
Python实现随机漫步功能
2018/07/09 Python
浅谈Python_Openpyxl使用(最全总结)
2019/09/05 Python
Python3 中sorted() 函数的用法
2020/03/24 Python
CSS3属性background-size使用指南
2014/12/09 HTML / CSS
分享29个基于Bootstrap的HTML5响应式网页设计模板
2015/11/19 HTML / CSS
西班牙高科技产品购物网站:MejorDeseo
2019/09/08 全球购物
英语专业毕业个人求职自荐信
2013/09/21 职场文书
给公司的建议书范文
2014/05/13 职场文书
公司年夜饭通知
2015/04/25 职场文书
Apache Calcite 实现方言转换的代码
2021/04/24 Servers
Java对文件的读写操作方法
2022/04/29 Java/Android