python引用另一个文件夹里的python函数

来源:转载

A


|-----__init__.py


|----- a.py


|---------B


|--------- __init__.py


|---------b.py


|---------C


|--------- __init__.py


|--------c.py


如图所示结构树,B,C同属于A的子目录,但是B,C之间是平行的。。。


b.py,c.py代码分别如下:


b.py:


def b_hello():print "B_HELLO" c.py:


def c_hello():print "C_HELLO"


如果A中a.py要调用B中或者C中py,则可以如下方式调用(以B为例)


from B import b


b.b_hello()


运行结果:B_HELLO


但是如果是B中或者C中py调用B中或C中呢?


这个时候如果我们依旧用如上所说调用,则会报错(这里是b.py调用c.py)


>>>


Traceback (most recent call last):File "E:/testnow/A/B/b.py", line 1, in from C import c ImportError: No module named C


所以,这种方法不行,那如何做呢,如下


import sys sys.path.append('E://testnow//A//C') import c def b_hello():print "B_HELLO" c.c_hello() 用这种方法,输出结果是:C_HELLO


也即刚才上面的“from 文件夹 import 模块名”只适用于父目录调用子目录的情况。。。而第二种方法则对所有的情况都适用,包括两个模块甚至都不在一个盘的情况。。。这里需要注意的一点是:sys.path添加目录时注意是在windows还是在linux下,windows下需要‘//’否则会出错。。。。。。。(我在这点上走了很久的弯路。。。)

分享给朋友:
您可能感兴趣的文章:
随机阅读: