Python:意外导入

2024-10-17 08:23:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这些模块和包:

main.py/                          
        pkg1/                  
            __init__.py
            maclasse1.py

        pkg2/                  
           __init__.py
           maclasse2.py

主.py:

from pkg1 import maclasse1
from pkg2 import maclasse2
if __name__=="__main__":
   MC1=maclasse1.MaClasse1()
   MC1.ma_classe1()
   MC2=maclasse2.MaClasse2()
   MC2.ma_classe2()

maclasse1.py

from pkg2 import maclasse2
class MaClasse1:
   def ma_classe1(self):
       print "Ma Classe 1"
       c2=maclasse2.MaClasse2()
       c2.ma_classe2()

maclasse2.py

from pkg1 import maclasse1
class MaClasse2:
   def ma_classe2(self):
       print"Ma Classe 2"
       mc1=maclasse1.MaClasse1()
       mc1.ma_classe1()

当我运行主.py文件,我得到以下错误:

Traceback (most recent call last):
  File "main.py", line 1, in <module>
    from pkg1 import maclasse1
  File "/home/nakkini/Desktop/tester/pkg1/maclasse1.py", line 1, in <module>
    from pkg2 import maclasse2
  File "/home/nakkini/Desktop/tester/pkg2/maclasse2.py", line 1, in <module>
    from pkg1 import maclasse1
ImportError: cannot import name maclasse1

如何解决这个问题?你知道吗

编辑:

根据Tim的评论,我在pkg3中创建了一个tohelp.py导入maclasse1.py,而maclass2.py导入tohelp.py,但是我仍然有同样的问题。你知道吗


Tags: frompyimportmainlinefilepkg1ma
1条回答
网友
1楼 · 发布于 2024-10-17 08:23:36

如果不打算更改体系结构,请尝试以下操作:

maclasse1.py

class MaClasse1:
    def ma_classe1(self):
        from pkg2 import maclasse2
        print "Ma Classe 1"
        c2=maclasse2.MaClasse2()
        c2.ma_classe2()

maclasse2.py

class MaClasse2:
    def ma_classe2(self):
        from pkg1 import maclasse1
        print"Ma Classe 2"
        mc1=maclasse1.MaClasse1()
        mc1.ma_classe1()

相关问题 更多 >