【问题标题】:Python Django ModeulNotFoundError: No module named 'SomeFolder'Python Django ModeulNotFoundError:没有名为“SomeFolder”的模块
【发布时间】:2022-01-19 18:54:12
【问题描述】:

我有一个 django 应用程序。挺复杂的,这里不能把所有的代码都贴出来,所以来个大图总结。与我正在做的事情相关的大图中文件夹的设置如下。请注意,“SomeFolder”是实际名称的占位符名称。 Some folder 是一个包含一些 python 脚本的文件夹,其中包含一些函数。它没有安装在 Django 应用程序中。我将 SomeFolder 拖放到后端文件夹中。这是必要的并且必须完成。这是一些与 Django 无关的 python 东西。

Dashboard
    backend
        SomeFolder
            A.py
            B.py
            C.py
        views.py
    Dashboard
    frontend
    manage.py
    

在顶部的views.py中,我这样做了

import SomeFolder

然后,在views.py 中,我有一个函数调用python 脚本A.py、B.py 和C.py 中的一些函数。这就是为什么我需要导入 SomeFolder。例如:

def someFunction():
    SomeFolder.A_Function_1
    SomeFolder.A_Function_2
    SomeFolder.B_Function_2
    etc.

问题是,当我运行python manage.py runserver 时,我在views.py 中得到ModuleNotFoundError: No module named 'SomeFolder'。 SomeFolder 文件夹与views.py 位于同一目录中,所以我不确定为什么它没有被识别。我在 stackoverflow 上看到了其他类似的示例,但并没有真正理解它们或如何解决它,所以我在这里发布了我自己的一个。

【问题讨论】:

  • SomeFolder 目录中有__init__.py 文件吗?

标签: python django modulenotfounderror


【解决方案1】:

试试

from . import SomeFolder

您实际上是在告诉 Django 从与您的 views.py 文件相同的目录中导入 SomeFolder。在这种情况下,我相信这将是后端,我假设它是您项目的应用程序,仪表板。

快速了解这一点的一种方法是检查您正在使用的 IDE/文本编辑器中的语法突出显示。如果您已成功导入所需的文件夹,则从该文件夹调用的函数应变为特定颜色。看看您是否注意到该函数现在的颜色与以前不同。

【讨论】:

  • 这似乎已经修复了错误。现在我只需要看看程序是否会运行。你能详细说明为什么会这样吗?
  • 很高兴它有帮助。您实际上是在告诉 Django 从与您的 views.py 文件相同的目录中导入 SomeFolder。在这种情况下,我相信这将是后端,我假设它是您项目的应用程序,仪表板。快速了解这一点的一种方法是检查您正在使用的 ide/文本编辑器中的语法突出显示。如果您已成功导入所需的文件夹,则从该文件夹调用的函数应变为特定颜色。看看您是否注意到该函数现在的颜色与以前不同。
  • 您最初使用导入函数的方式是导入 python 库的方式,即:日期时间、请求等。您需要导入在 django 目录中创建的自定义函数,因此您需要指定这些函数所在的位置。
猜你喜欢
  • 2019-04-24
  • 2013-07-24
  • 1970-01-01
  • 2018-01-16
  • 2020-08-16
  • 2013-05-04
  • 2017-07-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多