如何使用相对路径从Django shell中的多个应用程序导入模块?

2024-09-29 09:32:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在Django shell plus中加载多个应用程序的类,但我收到一个错误,说它找不到模块。我想告诉shell解释器使用相对路径在我的应用程序目录中加载一个模块。我该怎么做?shell解释器不应该从项目的根开始吗

壳牌公司

from .app1.models import Class1
from .app2.models import Class2

ModuleNotFoundError: No module named '__main__.app1'; '__main__' is not a package

文件结构

project/
   __init__.py
   settings.py
   app1/
       __init__.py (empty)
       models.py
   app2/
       __init__.py (empty)
       models.py

/project/\uuuuu init\uuuuu.py

from __future__ import absolute_import, unicode_literals

default_app_config = 'project.app1.apps.App1Config'

Tags: 模块frompyimportproject应用程序initmain
1条回答
网友
1楼 · 发布于 2024-09-29 09:32:09

在命令行中,它应该是:

from app1.models import Class1#app1或app2前面没有点

from app2.models import Class2

在这种情况下,在Django命令行中,您需要位于项目文件夹中,它才能工作

如果在其他地方:

from project.app1.models import Class1

您可以使用以下工具测试您的位置:


import os

cwd = os.getcwd()

print(cwd)

if cwd == 'any path':
    os.chdir('my_projectpath')

cwd = os.getcwd()

print(cwd)

from app1.models import Class1`


相关问题 更多 >