之前一直没太在意这方面的使用,直到需要复现faster-rcnn需要写很多的模块方便去调用,今天就讲清楚调用各种位置情况下的模块。
我在一个文件夹内创建了三个三个文件夹,
在ju文件夹内创建了二个py模块,自己写的一个.py文件称为一个模块,一个文件夹内全是.py加上这个文件夹有__init__.py可以称为一个包。在to文件夹下创建了一个aaa模块和一个tt包,同理you文件夹下一个jiji模块和uu包。
我就以jiji模块去调用其他的模块和包讲解,在jiji模块中可以直接去调用当前路径下的模块和包,但是无法去调用to和ju文件夹内模块,需要用上sys。看具体的代码
import sys
sys.path.append('E://pytorch/调用')
def cici():
c = 3
return c
import to.aaa as aaa
from ju import yuyu
from uu import ouou
from to.tt import ee
e = ouou.ou()
c =aaa.haha()
a = yuyu.yu()
print(c)
print(a)
print(e)
dd = ee.tt()
print(dd)
我这里加上了绝对路径,这样就可以去调用ju,to,you三个同级文件夹内的模块了。再看调用的几种形式,from 包 import 模块 ,这是一种写法,当用sys添加跟you同级的目录时,就可以去使用ju和to这二个包了,还可以from 包.包 import 模块 。当前jiji路径下的就直接import 模块
ju.yuyu.py
def yu():
return 34
ju.didi.py
def oo():
return 4
to.tt.ee.py
def tt():
return 88
you.uu.ouou.py
def ou():
return 101