我在运行一个脚本时遇到了问题,这个脚本是在脚本文件夹内的一个文件夹中使用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