python 模块包的调用问题(2)

python模块包调用问题

包结构如下:

这里写图片描述

如图所示结构树,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”


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

      from B import b

      b.b_hello()

      运行结果:B_HELLO

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

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

>>>

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


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

b.py:

      import sys
      sys.path.append(‘E:\\testnow\\A\\C’)
      import c
      def b_hello():
             print “B_HELLO”

      c.c_hello()
用这种方法,输出结果是:C_HELLO



总结:

1. “from 文件夹 import 模块名”只适用于父目录调用子目录的情况。

2. sys.path.append()对所有的情况都适用,包括两个模块甚至都不在一个盘的情况。

3. sys.append() 添加目录时注意”\\”

转载: http://blog.csdn.net/raoqiang19911215/article/details/22797939

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值