Django管理命令导入错误

4 投票
2 回答
2448 浏览
提问于 2025-04-17 11:12

我在我的 qsl/management/commands/<customcommand>.py 文件中导入模块时遇到了问题。实际上,我的应用结构是:

qsl/management/commands/ : dir for my management commands
qsl/management/jobs/ : dir for my mangement jobs

这些工作是 Python 类,里面包含了我希望在相应命令中完成的任务。

比如:

news command in qsl/management/commands/ imports news job in qsl/management/jobs/

当我想执行 python manage.py news 时,出现的错误是 importerror : no module named management.jobs.news

2 个回答

0

如果文件或目录结构中的“isn’t”不是个拼写错误,那么你可能是在用pip安装时遇到了问题?

在你的 setup.py 文件中,找到 packages=[] 这一行,确保你在里面加上

qsl.managementqsl.management.commands。这样做解决了我的问题。

10

确保所有的文件夹里都有一个叫做 __init__.py 的文件,这样它们才能被当作模块导入。
关于这个结构的详细说明可以在这里找到: https://docs.djangoproject.com/en/dev/howto/custom-management-commands/

你的文件夹结构大概应该是这样的:

qsl/
    __init__.py
    models.py
    management/
        __init__.py
        commands/
            __init__.py
            news.py
    jobs/
        __init__.py
        news.py
    tests.py
    views.py

撰写回答