繁体   English   中英

如何修复导入文件中的属性错误?

[英]How to fix Attribute Error in importing files?

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "D:\Main\Programming\Python\Console\mod_project\auto_message_mod.py", line 5, in <module>
    import mod
  File "D:\Main\Programming\Python\Console\mod_project\mod.py", line 77, in <module>
    main()
  File "D:\Main\Programming\Python\Console\mod_project\mod.py", line 18, in main
    main_program_menu()
  File "D:\Main\Programming\Python\Console\mod_project\mod.py", line 36, in main_program_menu
    auto.auto_message_tools()
AttributeError: partially initialized module 'auto_message_mod' has no attribute 'auto_message_tools' (most likely due to a circular import)

当我尝试将文件调用auto_message_mod.py导入mod.pymod.py时,我不断收到这些错误,我尝试调用 function auto_message_tools (这些文件位于同一文件夹中)。 我还将其他文件导入mod.py并且效果很好。 除了auto_message_mod.py 我已将import auto_message_mod as auto但它不起作用。 我已经尝试过auto.auto_message_tools()但没有用。 有人可以帮帮我吗?

Python是一种脚本语言,逐行解释。 import语句的字面意思是它将跳转到该文件并开始阅读它,然后再跳转回原始文件并继续阅读该文件。 在这里阅读更多。

您可以看到,在您的回溯中,您导入了一个文件,然后该文件调用了可能是原始文件中的 function。

解决此问题的最佳方法是将导入时代码与运行时代码分开。 这意味着所有内容都应该在代码运行之前导入,这意味着主文件之外的所有代码都应该只能在函数和类中找到。 这意味着您不太可能像这样创建循环导入,因为所有代码在您调用任何代码之前都已经初始化。

如果这不起作用,尝试将罪魁祸首导入语句移到底部通常会有所帮助,尽管它在风格上很糟糕,所以我只会将它用作最后的手段。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM