簡體   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