使用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
我知道我错过了一些简单的事情,任何人都可以帮助我吗?
答案 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