У меня есть приложение Django + Python. У меня есть сценарий python, который принимает требования в качестве параметров командной строки.
Проблема для меня заключается в том, что при попытке ввести аргументы командной строки сценарий не выполняется. Когда я убираю аргументы командной строки, все работает нормально. Мне нужны эти аргументы командной строки.
Я использую node JS с Python Shell для выполнения сценария python при нажатии кнопки на главной странице django HTML.
Вот мой код:
let {PythonShell} = require('python-shell')
var path = require("path")
function track_object() {
//document.getElementById("detect").value = "One moment please ..."
var python = require("python-shell")
var path = require("path")
//let {PythonShell} = require('python-shell')
var options = {
scriptPath : path.join(__dirname, '/../engine/opencv-object-tracking/'),
pythonPath : '/usr/bin/python'
}
**//let pyshell = new PythonShell("opencv_object_tracking.py --video dashcam_boston.mp4 --tracker csrt", options);
let pyshell = new PythonShell("opencv_object_tracking.py", options);**
}
Примечание: две строки, выделенные жирным шрифтом, показывают вызов скрипта с аргументами и без них
Пожалуйста, дайте мне знать, как правильно передать аргументы командной строки с помощью Python Shell.
***** РЕДАКТИРОВАТЬ ****** вот мой аргумент argparse:
# construct the argument parser and parse the arguments
ap = argparse.ArgumentParser()
ap.add_argument("-v", "--video", type=str,
help="path to input video file")
ap.add_argument("-t", "--tracker", type=str, default="csrt",
help="OpenCV object tracker type")
args = vars(ap.parse_args())
# extract the OpenCV version info
(major, minor) = cv2.__version__.split(".")[:2]
# if we are using OpenCV 3.2 OR BEFORE, we can use a special factory
# function to create our object tracker
if int(major) == 3 and int(minor) < 3:
tracker = cv2.Tracker_create(args["tracker"].upper())