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

时间:2015-08-10 02:42:34

标签: python django run-script django-extensions

使用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

我知道我错过了一些简单的事情,任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:1)

我对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