debugging 无法从Python模块导入函数[已关闭]

ql3eal8s  于 2023-04-21  发布在  Python
关注(0)|答案(4)|浏览(135)

已关闭,该问题需要details or clarity,目前不接受回答。
**想要改进此问题?**通过editing this post添加详细信息并澄清问题。

3天前关闭。
Improve this question
这里init.py有一个函数create_app,但我无法在main.py中导入该函数。
我已经附加了main.py和init.py [ enter image description here ](https://i.stack.imgur.com/E9YMh.png
它继续给出ImportError:无法从“website”(未知位置)导入名称“create_app”
我试过导入init,但它也不起作用。

nhn9ugyo

nhn9ugyo1#

Init.py文件在templates文件夹中,如图所示。
必须这样导入:

from website.templates import create_app
lmvvr0a8

lmvvr0a82#

由于from ... import ...语句而发生错误,因为您正在尝试导入文件夹。要导入该文件夹中的文件,请使用import website.create_app,但这也会导致错误,因为没有名为create_app.py的文件。正确的代码应为:

import website.create_app
app = create_app

if __name__ == "__main__":
  app.run(debug=True)
pxy2qtax

pxy2qtax3#

从我在图片中看到的,我假设这是目录结构:

Flask-web-app
├── say-hello
├── website
│   ├── static/
│   ├── templates/
│   ├── __init__.py
│   ├── auth.py
│   ├── models.py
│   └── views.py
└── main.py

您的main.py应包含:

from website import views    #filename should be used here

app = views.app    #considering views.py has an app variable defined

if __name__ == '__main__':
    app.run(debug=True)

问题在于你使用相对导入的方式。

zazmityj

zazmityj4#

我认为你绝对应该尝试在你的__init__.py中写if __name__ == "__main__":。(这将允许脚本作为一个独立的程序运行)
然后,您可以尝试通过使用import create_app from __init__.py__init__.py导入main.py中的函数create_app。我认为这里的问题是,您应该尝试直接从__init__.py导入它,而不是使用import create_app from website
最后,你也可以尝试使用from__init__.py import *enter image description here从你的__init__.py导入所有的功能。希望这可以帮助你!

相关问题