Python import自定义模块方法
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在不同层级目录import模块的方法
使用python进行程序编写时,经常会使用第三方模块包.这种包我们可以通过python setup install 进行安装后,通过import XXX或from XXX import yyy 进行导入.不过如果是自己遍写的依赖包,又不想安装到python的相应目录,可以放到本目录里进行import进行调用:为了更清晰的理清程序之间的关系,例如我们会把这种包放到lib目录再调用.本篇就针对常见的模块调用方法汇总下. 一.同级目录下的调有 程序结构如下: -- src |-- mod1.p
-
import的本质解析
上一篇文章中我们介绍了python中hashlib模块用法示例,详情参见:http://www.jb51.net/article/127103.htm.今天我们看看import的有关内容. 编程时总是用到import导入,动不动就导入,很简单,但import到底是个什么功能,它的本质是什么? 一. 模块:用来从逻辑上来组织python代码(变量,函数,类,逻辑,实现一个功能),本质就是,py结尾的python文件 1.1 导入方法: import module import module1, m
-
Python import用法以及与from...import的区别
在python用import或者from...import来导入相应的模块.模块其实就是一些函数和类的集合文件,它能实现一些相应的功能,当我们需要使用这些功能的时候,直接把相应的模块导入到我们的程序中,我们就可以使用了.这类似于C语言中的include头文件,Python中我们用import导入我们需要的模块. eg: 复制代码 代码如下: import sys print('================Python import mode==========================
-
Python如何import文件夹下的文件(实现方法)
Python的import包含文件功能就跟PHP的include类似,但更确切的说应该更像是PHP中的require,因为Python里的import只要目标不存在就报错程序无法往下执行.要包含目录里的文件,PHP中只需要给对路径就OK.Python中则不同,下面来看看这个例子. 目录结构: a.py 要 import dir目录下的 b.py 文件.a.py代码如下: # coding=utf-8 "import dir 目录下的 b.py 文件" import dir.b prin
-
详解Python中的from..import绝对导入语句
相对或者绝对import 更多的复杂部分已经从python2.5以来实现:导入一个模块可以指定使用绝对或者包相对的导入.这个计划将移动到使绝对的导入成为默认的细节在其他版本的python中. 我们假设你有一个包目录,像下面这样: pkg/ pkg/__init__.py pkg/main.py pkg/string.py 上面定义了一个包称为 pkg 包含 pkg.main 和pkg.string 两个子模块.考虑在'main.py'中的代码,什么事情会发生如果我们执行语句 import str
-
Python中import导入上一级目录模块及循环import问题的解决
import上一级目录的模块 python中,import module会去sys.path搜索,sys.path是个列表,并且我们可以动态修改. 要import某个目录的module,我们sys.path.insert(0,somedir)来加入搜索路径,就可以import了. 既然这样,要import上一级目录的module,可以sys.path.insert(0,parentdir). 不过这种写绝对路径的方式,如果文件放到其它地方,就不行了. 所以用动态方法来获取上一级目录. impor
-
Python import自定义模块方法
python包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的路径. 下面将具体介绍几种常用情况: (1)主程序与模块程序在同一目录下: 如下面程序结构: `-- src |-- mod1.py `-- test1.py 若在程序test1.py中导入模块mod1, 则直接使用import mod1或from mod1 import *; (2)主程序所在目录是模块所在目录的父(或祖辈)目录 如下面程序结构: `-- src |-- mod1.py |-- mod
-
python引入不同文件夹下的自定义模块方法
初学Python,这个问题搞了我好久,现在来分享下我的解决思路,希望可以帮到大家. 先说下python引入模块的顺序:首先现在当前文件夹下查找,如果没有找到则查找Python系统变量中的模块.所以说,当我们引入同一个文件夹下的自定义模块时,可以很顺利的引入而不会报错.那么问题来了,不同文件夹下的呢?也用一样的方法吗? 举个栗子: 现在我们想在subPack1文件下的module_1.py中引入subPack2下的module_2.py. 但是我们在module_1.py中写下: import s
-
windows下安装Python的XlsxWriter模块方法
在windows环境下安装python的XlsxWriter模块,虽然很简单,但由于自己粗心,少了一个字符,导致不少的错误... 1.通过pip命令来安装. C:\Users\Administrator>pip install XlsWriter Collecting XlsWriter Could not find a version that satisfies the requirement XlsWriter (from versions: ) No matching distribut
-
Python中自定义函方法与参数具有默认值的函数
目录 一.Python中自定义函数的方法 1自定义函数的语法 2自定义函数的实现 3自定义函数的调用 二.Python中参数具有默认值的函数 1参数是常量默认值的函数 2参数是常量默认值的函数 一.Python中自定义函数的方法 在Python编程中,可以使用已经定义好的函数,也可以自定义函数实现某些特殊的功能. 1 自定义函数的语法 在Python中,自定义函数的语法如下所示: def 函数名(参数): 函数体 其中,def是关键字:之后跟的是函数名,通过函数名来调用该函数:函数名之后
-
python安装/卸载模块方法步骤详解(附详细图解)
目录 以pygame模块举例 1,通过pycharm导入 2,在终端通过pip安装 3,通过第三方python库安装 总结 以pygame模块举例 1,通过pycharm导入 (1)直接点击install package pygame就可以 出现以下情况则安装正确 如果出现错误可以试试把pip文件升级到最新 (2)通过python interpreter安装 步骤:File-Setting-python interprete 点击加号 搜索到pygame模块后点击install Package就
-
Python3导入自定义模块的三种方法详解
前话 最近跟着廖雪峰的教程学到 模块 这一节.关于如何自定义一个模块,如果大家不懂的话先来看看基本的介绍: 模块 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式.在Python中,一个.py文件就称之为一个模块(Module). 使用模块有什么好处? 最大的好处是大大提高了代码的可维护性.其次,编写代码不必从零
-
python中添加模块导入路径的方法
python中自定义模块导入路径的方式主要有以下3种: (1)使用sys.path.append()随着程序执行,会动态地添加模块导入的路径,但是程序执行结束后就会立即失效(临时性的) import sys sys.path.append('自定义路径') (2)加入到环境变量PYTHONPATH用于当前用户 在用户主目录下有一个 .bashrc 隐藏文件,打开文件 sudo vim ~/.bashrc 添加单个路径的方法 export PYTHONPATH=<自定义路径>:$PYTHONPA
-
Python中re模块的常用方法总结
前言 正则表达式作为计算机科学的一个概念,通常被用来检索.替换那些符合某个规则的文本.正则表达式是对字符串操作的一种逻辑公式,用事先定义好的规则字符串对字符串进行过滤逻辑处理. re模块总结,正则表达式.在网络爬虫中对于数据定位,学习regex也很有必要 常用方法 re.compile() 将指定的正则表达式模式编译为正则表达式对象,可用于匹配和搜索 re.match() 该方法用于匹配字符串开头的模式 re.serach() 该方法用于匹配出现在字符串中任意位置的模式 re.findall()
-
详解Python import方法引入模块的实例
详解Python import方法引入模块的实例 在Python用import或者from-import或者from-import-as-来导入相应的模块,作用和使用方法与C语言的include头文件类似.其实就是引入某些成熟的函数库和成熟的方法,避免重复造轮子,提高开发速度. python的import方法可以引入系统的模块,也可以引入我们自己写好的共用模块,这点和PHP非常相似,但是它们的具体细节还不是很一样.因为php是在引入的时候指明引入文件的具体路径,而python中不能够写文件路径进
-
python引用(import)某个模块提示没找到对应模块的解决方法
自己检查了很多遍,自己写的每错,但是还是报没有找到对应python模块.目录结构如下图所示: __init__.py这个文件需要引入models下的todo_kanban.py文件.__init__内容如下: 写法没问题,但是报错没找到对应模块,经过查找官方文档,需要在被引入(import)的目录下创建一个__init__.py文件,即使 该文件为空也没关系. 以上这篇python引用(import)某个模块提示没找到对应模块的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望
随机推荐
- jQuery 3.0 的变化及使用方法
- js实现的点击超链显示隐藏层
- 详解angular用$sce服务来过滤HTML标签
- 删除SAM文件,清除Administrator账号密码
- Linux进程间通信--使用信号
- php addslashes和mysql_real_escape_string
- php结合ajax实现赞、顶、踩功能实例
- Python自定义进程池实例分析【生产者、消费者模型问题】
- MySQL实现MYISAM表批量压缩的方法
- ubuntu与centos中更换ip的shell代码
- awk基础知识小结第1/2页
- javascript实现将数字转成千分位的方法小结【5种方式】
- Android截屏截图的几种方法总结
- 深入解析Java编程中的抽象类
- Android如何防止apk程序被反编译(尊重劳动成果)
- 探讨:如何使用委托,匿名方法对集合进行万能排序
- Android 自定义密码输入框实现代码
- 浅谈SpringMVC对RESTfull的支持
- 解决SDK注入权限验证安卓正常,IOS出现config fail的方法
- sqlite3迁移mysql可能遇到的问题集合