python引用另一个文件夹里的python函数 - Go语言中文社区

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:testnowABb.py", line 1, in <module>
    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下需要‘\’否则会出错。。。。。。。(我在这点上走了很久的弯路。。。)

转载于:https://my.oschina.net/u/2000675/blog/1587091

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_33755649/article/details/92169628
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-01 19:35:40
  • 阅读 ( 945 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢