尝试从根目录导入文件时遇到 moduleNotFoundError
。
Flask 应用的目录结构:
index.py
auth_
- server.py
Pages
- home.py
我可以从 home.py
导入 Pages
,但不能从 server.py
导入 auth_
在 index.py
中,我尝试导入 server.py
from auth_ import server
File "/Users/xxx/opt/anaconda3/lib/python3.8/site-packages/flask/cli.py", line 240, in locate_app
__import__(module_name)
ModuleNotFoundError: No module named 'auth_'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/xxx/opt/anaconda3/lib/python3.8/site-packages/flask/cli.py", line 338, in __call__
self._flush_bg_loading_exception()
File "/Users/xxx/opt/anaconda3/lib/python3.8/site-packages/flask/cli.py", line 326, in _flush_bg_loading_exception
reraise(*exc_info)
File "/Users/xxx/opt/anaconda3/lib/python3.8/site-packages/flask/_compat.py", line 39, in reraise
raise value
File "/Users/xxx/opt/anaconda3/lib/python3.8/site-packages/flask/cli.py", line 314, in _load_app
self._load_unlocked()
File "/Users/xxx/opt/anaconda3/lib/python3.8/site-packages/flask/cli.py", line 330, in _load_unlocked
self._app = rv = self.loader()
File "/Users/xxx/opt/anaconda3/lib/python3.8/site-packages/flask/cli.py", line 388, in load_app
app = locate_app(self, import_name, name)
File "/Users/xxx/opt/anaconda3/lib/python3.8/site-packages/flask/cli.py", line 250, in locate_app
raise NoAppException('Could not import "{name}".'.format(name=module_name))
flask.cli.NoAppException: Could not import "auth_".
答案 0 :(得分:0)
from .auth_ import server
将解决您的问题。
.
表示您运行脚本的当前目录,即 index.py
,因此对于 .auth_
,您在与 {{1} 相同的目录中有 auth_
文件夹并且您想调用 index.py
目录中的文件或文件夹。
最后的语句 (auth
) 告诉您将使用 from .auth_ import server
脚本,该脚本位于 server.py
文件夹中,auth_
文件夹与您的 {{ 1}}。
我建议您查看 this guide 以了解 Python 中的绝对导入和相对导入。