Django 无法从应用程序文件夹导入应用程序,ImportError

Posted

技术标签:

【中文标题】Django 无法从应用程序文件夹导入应用程序,ImportError【英文标题】:Django can't import app from apps' folder, ImportError 【发布时间】:2021-07-14 01:37:04 【问题描述】:

我在 Django 1.11.10 和 Python 2.7 上制作了旧项目

下面的导入不起作用

from apps.configuration.utils import HrefModel

追溯

 from apps.configuration.utils import HrefModel

 ImportError: No module named configuration.utils

在设置中安装的应用程序

 INSTALLED_APPS = [
    some django apps...

    "apps.configuration",
    "apps.nav",
    "apps.pages",

    more similar apps...
]

项目的文件夹结构

project_name/
├── apps
│   ├── account
│   ├── administration
│   ├── catalog
│   ├── configuration
│   │     ├── admin.py
│   │     ├── apps.py
│   │     ├── context_processors.py
│   │     ├── __init__.py
│   │     ├── lookups.py
│   │     ├── management
│   │     ├── migrations
│   │     ├── models
│   │     ├── templatetags
│   │     ├── tests.py
│   │     ├── utils
│   │     └── views.py
│   ├── content
│   ├── elastic_search
│   ├── feedback
│   ├── google_captcha
│   ├── __init__.py
│   ├── nav
│   ├── pages
│   ├── posts
│   ├── shop
├── docker-compose.yml
├── Dockerfile
├── entrypoint.sh
├── manage.py
├── requirements.txt

配置应用内的 utils 文件夹

utils/
├── bank.py
├── format.py
├── __init__.py
├── objects.py
├── pagination.py
└── slug.py

Objects.py 包含我要导入的类

【问题讨论】:

configuration 是文件夹吗? utils.py 在哪里?您可能在配置文件夹中缺少__init__.py configuration 是文件夹,utils.py 放在里面 配置文件夹里面有__init__.py 哪个文件包含导入语句? import 语句取决于“importer”文件的位置。如果您的文件在“应用程序”内,也许这个工作:from .configuration.utils import HrefModel Imprter 位于应用程序内部 apps 文件夹中。尝试了您的解决方案,同样的错误from .configuration.utils import HrefModel ImportError: No module named configuration.utils utils 是文件夹吗?或者你有utils.py 【参考方案1】:

将 python2.7 更改为 python3.5,这让我摆脱了异常

Django 文档说

Python 兼容性与 Django 1.9 一样,Django 1.10 需要 Python 2.7、3.4 或 3.5

https://docs.djangoproject.com/en/3.1/releases/1.10/

【讨论】:

以上是关于Django 无法从应用程序文件夹导入应用程序,ImportError的主要内容,如果未能解决你的问题,请参考以下文章

Django静态图像文件无法加载资源

尝试启动应用程序时无法导入 Django 错误

我无法在 django 中使用“静态”模板导入 css 文件

Django Admin——批量员工用户创建/从 CSV 文件导入

从数据库动态设置 Django 设置变量

Django项目重组:无法导入应用程序