django-extensions:使用runscript运行脚本,该脚本位于脚本中的一个文件夹中



我在运行一个脚本时遇到了问题,这个脚本是在脚本文件夹内的一个文件夹中使用django-extensions中包含的runscript命令。

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

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

文件first.py和second.py是相同的

根据django-extension runscript命令的要求,它有一个运行函数。

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

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

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

但不知何故,我无法从runscript命令运行第一个。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

我知道我错过了一些简单的东西,有人能帮助我吗?

您需要按如下方式运行脚本:

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

这里的脚本和教学大纲是包含__init__.py的两个目录

我没有任何使用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

最新更新