3

使用 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 命令运行 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

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

4

2 回答 2

7

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

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

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

于 2015-08-10T09:51:43.763 回答
2

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

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
于 2015-08-10T08:02:15.217 回答