django-extensions: 运行 使用 runscript 的脚本,它位于脚本中的文件夹内

django-extensions: Run a script using runscript which is inside a folder within scripts

我遇到问题 运行使用 django-extensions 中包含的 运行script 命令在 scripts 文件夹内的文件夹中设置脚本。

我项目中的文件夹结构如下:

-apps
-scripts
    -syllabus
        -first.py
    -second.py

文件 first.py 和 second.py 相同。

它具有 django-extension 运行script 命令所需的 运行 功能。

def run(*args):
    # my function call for the script.

我已经很好地放置了 init.py 并且我可以从命令 运行 second.py:

./manage.py runscript second --script-args=excel.xlsx

但是我无法通过 运行script 命令 运行 first.py 文件。使用此命令:

./manage.py runscript first --script-args=excel.xlsx

我明白了

No (valid) module for script 'first' found Try running with a higher verbosity level like: -v2 or -v3

我什至尝试 运行 更高的冗长级别,在末尾添加 -v2-v3。但是得到这个错误:

No (valid) module for script 'first' found

我知道我遗漏了一些简单的东西,有人可以帮我吗?

我对 Django 没有任何经验。但是可以通过在模块查找路径中添加 syllabus 来解决问题。为此,请在 scripts 目录下的 __init__.py 文件中添加以下代码。

import sys
import os

curr_path = os.path.dirname(os.path.realpath(__file__))
sys.path.insert(0, curr_path + '/syllabus')

或者另一种方法是告诉 python syllabus 本身就是一个模块。在这种情况下,您只需将 first.py 重命名为 __init__.py。然后你必须调用它作为

./manage.py runscript syllabus --script-args=excel.xlsx

您需要运行脚本如下:

/manage.py runscript scripts.syllabus.first --script-args=excel.xlsx

这里的scripts和syllabus是两个包含__init__.py.

的目录