from flask import Flask
app = Flask(__main__)
if __name__ == "__main__":
app.run()
如果我运行此命令,则会收到以下错误代码:
ImportError: cannot import name 'Flask' from partially initialized module 'flask' (most likely due to a circular import)
有人知道如何解决此问题吗?
答案 0 :(得分:2)
当您导入与python脚本名称相同的模块名称时,发生循环导入错误。重命名您的文件以解决该问题,切勿使用模块名作为文件名。
答案 1 :(得分:2)
由于循环导入,您正面临此问题。
Python导入模块时,它将检查模块注册表以查看模块是否已导入。如果模块已经注册,Python将使用缓存中的现有对象。模块注册表是已通过模块名称初始化和索引的模块表。可以通过sys.modules
访问该表。
如果尚未注册,Python会找到该模块,并在必要时对其进行初始化,然后在新模块的名称空间中执行该模块。
在您的情况下,您要在名为flask
的脚本中导入模块flask
。重命名文件名应该可以解决您的问题。
要了解有关循环导入的更多信息,请阅读以下文章:
https://stackabuse.com/python-circular-imports/
https://www.stefaanlippens.net/circular-imports-type-hints-python.html