python中两个不同的包,如何相互引用两个包中的模块

longhua2014 2014-10-11 05:00:49
就是我有一个包叫A,其中有一个模块叫ax.py,还有一个包叫B,其中有一个模块叫bc.py,我现在,要在bc.py中引用A包中的模块ax,我用from A import py,这样不行
...全文
1745 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
ForestDB 2014-10-23
  • 打赏
  • 举报
回复
只要不是交叉引用,就没事的。
longhua2014 2014-10-23
  • 打赏
  • 举报
回复
引用 13 楼 ForestDB 的回复:
https://docs.python.org/2/faq/programming.html#how-can-i-have-modules-that-mutually-import-each-other ---------- http://python.usyiyi.cn/ Volunteers WANTED
谢谢你,里面的资料很好,但找不到,可以解决我问题的办法,我现在就是一个包想引用另外一人包的模块
jeky_zhang2013 2014-10-23
  • 打赏
  • 举报
回复
试过交叉引用运行报错
longhua2014 2014-10-23
  • 打赏
  • 举报
回复
引用 15 楼 ForestDB 的回复:
只要不是交叉引用,就没事的。
问题是我,说是交叉引用,谢谢了,看来,我的问题明白了,结案吧
ForestDB 2014-10-16
  • 打赏
  • 举报
回复
https://docs.python.org/2/faq/programming.html#how-can-i-have-modules-that-mutually-import-each-other ---------- http://python.usyiyi.cn/ Volunteers WANTED
fibbery 2014-10-16
  • 打赏
  • 举报
回复
交叉引用可能存在设计问题。
longhua2014 2014-10-16
  • 打赏
  • 举报
回复
引用 9 楼 angel_su 的回复:
贴出错误提示,一般有嵌套情况按4楼方式应该可以,你说不行嘛可能是有其他错误...

jeky_zhang2013 2014-10-13
  • 打赏
  • 举报
回复
最好不要有嵌套的引用
longhua2014 2014-10-13
  • 打赏
  • 举报
回复
引用 1 楼 u013171165 的回复:
from A import ax
在同一个工程的话,没有问题 如果你的包不是一个工程里,需要添加path
import sys
sys.path.append()
谢谢你的回复,还是不行呢,麻烦你看一下我刚才新增加的图片与代码,非常感谢
longhua2014 2014-10-13
  • 打赏
  • 举报
回复
引用 4 楼 u013171165 的回复:
[quote=引用 3 楼 u013171165 的回复:] 你这是交叉引用,逻辑上好像就不能实现吧。
你可以试下
import A.ax
另一个
import B.bc
这个还不行那只有坐等大神了 [/quote] 这样不行
longhua2014 2014-10-13
  • 打赏
  • 举报
回复
引用 3 楼 u013171165 的回复:
你这是交叉引用,逻辑上好像就不能实现吧。
现在,是不行,但像Java是可以的
INeddy 2014-10-13
  • 打赏
  • 举报
回复
A和B的外层也是一个包么?是的话 from ..A import ax
angel_su 2014-10-13
  • 打赏
  • 举报
回复
贴出错误提示,一般有嵌套情况按4楼方式应该可以,你说不行嘛可能是有其他错误...
The_Third_Wave 2014-10-11
  • 打赏
  • 举报
回复
引用 3 楼 u013171165 的回复:
你这是交叉引用,逻辑上好像就不能实现吧。
你可以试下
import A.ax
另一个
import B.bc
这个还不行那只有坐等大神了
The_Third_Wave 2014-10-11
  • 打赏
  • 举报
回复
你这是交叉引用,逻辑上好像就不能实现吧。
longhua2014 2014-10-11
  • 打赏
  • 举报
回复


DEF模块:
#!/usr/bin/python
#-*- encoding: utf-8 -*-
'''
Created on 2014年10月11日

@author: Administrator
'''
from Genesis import ABC

class Mx():
def __init__(self):
print 'this is ok'
tmp = ABC.Sx()
tmp.hx()
def hi(self):
print 'mxx'
if __name__ == '__main__':
xk = Mx()

+++++++++++++++++
ABC模块
#!/usr/bin/python
#-*- encoding: utf-8 -*-
'''
Created on 2014年10月11日

@author: Administrator
'''
from New_Start import DEF
class Sx():
def __init__(self):
print "into ABC.Sx...."
def hx(self):
print 'hi everyone..'
tmp = DEF.Mx()
tmp.hi()
The_Third_Wave 2014-10-11
  • 打赏
  • 举报
回复
from A import ax
在同一个工程的话,没有问题 如果你的包不是一个工程里,需要添加path
import sys
sys.path.append()

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧