python:尝试从目录导入文件时`moduleNotFoundError`

时间:2021-06-04 17:38:50

标签: python

尝试从根目录导入文件时遇到 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_".

1 个答案:

答案 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 中的绝对导入和相对导入。