Python学习之模块间互相调用方法详解
来源:互联网 发布:java工程师简历模板 编辑:程序博客网 时间:2024/05/14 18:13
本文和大家分享的主要是python中模块间互相调用相关知识,一起来来了吧,希望对大家学习python有所帮助。
问题
在python里,假设我们有两个模块,A,B,在模块a中有文件a1,模块b中有文件b1.
结构如下
–a
—a1
–b
—b1
那么,在b1文件中调用a1里的方法,就会出现import error,告诉我们找不到这个模块
解决方法
对于这类问题解决方法很简单,由于他们的父级目录都是相同的,我们只需要在模块a中加入一个空的文件 init.py(必须是这个名字,下划线前后都是两个),就可以将目录a转化为libroot。我们的调用这时候也就可以进行了。
更复杂的情况
上面的情况比较简单,但是往往我们使用的过程中会有更加复杂的情况,比如下面
–MyProject
—a
—-a1
—b
—-c
—–d
——d1
此时,d1调用a1中的方法,即使加入了 init .py也是行不通的。我们需要用一些手段把a1所在目录父级路径加入d1的搜索路径
解决方法
正如上面所说,我们需要把包a的父级路径加入到d1的搜索路径里去,怎么实现呢?很简单,使用os包,代码如下
import os
import sys
curPath = os.path.abspath(os.path.dirname(__file__))
rootPath = os.path.split(curPath)[0]
sys.path.append(rootPath)
sys.path.append('/home/u3/app/MyProject')
上面代码中/home/u3/app/MyProject就是我们需要添加的内容,即包a的父级路径,各位在使用的时候换成自己的路径就行了
IDE提醒
使用了上面两种方法后,就可以消除大多数的import error找不到的情况了,需要注意的是,在ide中,这些步骤都是ide来完成的,所以会出现,ide里能运行,命令行各种报错的情况。
来源:u3coding
阅读全文
0 0
- Python学习之模块间互相调用方法详解
- 模块间互相调用的一种方法
- 模块间互相调用的一种方法
- python模块学习之---- urllib2模块详解
- Python包间模块的互相调用
- Python之import方法引入模块详解
- Android组件化之不同模块间 交互(activity互相跳转,数据互相传递,互相调用函数)
- Python学习之日志模块详解
- Python学习之psutil模块详解
- Python学习之logging模块详解
- Python之模块调用
- python类之间方法互相调用
- python模块调用方法总结
- python学习之魔法方法的调用
- Python之模块学习
- python学习之模块
- python学习之模块
- 详解Python模块导入方法
- python基础学习二——数据类型
- day5
- 【帝国CMS】标题+图片+摘要+时间+来源
- JavaScript的封装,继承 | 原型链
- 空了一天,今天第二十六天
- Python学习之模块间互相调用方法详解
- Exception starting filter struts2 java.lang.NoClassDefFoundError: org/objectweb/asm/ClassVisitor
- hadoop伪分布式集群搭建
- 内存对齐
- zookeeper基础(转)
- LightOJ 1288 Subsets Forming Perfect Squares(高斯消元法)
- OSG-HUD
- xilinx IP核配置,一步一步验证Xilinx Serdes GTX最高8.0Gbps
- B+树在数据库中的应用