在python中导入错误

时间:2010-12-08 12:39:44

标签: python import python-import

在file1.py中:

      def test1():
        print "hi"

在file2.py中:

      from file1 import test1

      def test2():
        print "hello"

      test1()
      test2()

输出:

      hi
      hello

现在在文件1中,如果我包含test2,我会收到以下错误:

    from file2 import test2

    def test1():
      print "hi"

   Traceback (most recent call last):
   File "file1.py", line 1, in ?
   from file2 import test2
   File "/root/pyt/file2.py", line 1, in ?
   from file1 import test1
   File "/root/pyt/file1.py", line 1, in ?
   from file2 import test2
  ImportError: cannot import name test2

有些人可以解释为什么以及如何使其发挥作用?

2 个答案:

答案 0 :(得分:4)

这是一个循环导入问题。您要从file2导入file1,然后在file2的顶层导入,再次导入file1。这意味着1无法加载,除非您导入2并且2无法加载,除非您导入`1。

至于如何使其发挥作用,你能解释一下你想做什么吗?你为什么不把这两个函数放在同一个模块中并一次性导入?

答案 1 :(得分:2)

您尝试访问时的名称doesn't exist in the module