[英]How can I add parameters to a Python Shell command?
我有一個 Django + Python 應用程序。 我有一個 python 腳本,它將需求作為命令行選項。
我的問題是,當我嘗試輸入命令行參數時,腳本無法執行。 當我取出命令行參數時,它運行良好。 我需要那些命令行參數。
當在 django HTML 首頁中單擊按鈕時,我使用帶有 Python Shell 的節點 JS 來執行 python 腳本。
這是我的代碼:
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())
您應該在選項變量上添加參數。 例如,
var options = {
mode: 'text',
scriptPath : path.join(__dirname, '/../engine/opencv-object-tracking/'),
pythonPath : '/usr/bin/python',
args: ['--video dashcam_boston.mp4 --tracker csrt']
}
此外,如果您需要執行后的輸出,您可以添加pythonOptions: ['-u']
參數。
--編輯1--
這很奇怪,但它是關於引號的。 如果你使用"
而不是'
,它工作得很好。這是下面的代碼,適用於我的電腦
var options = {
scriptPath : path.join(__dirname, './'),
pythonPath : '/usr/bin/python',
args: ["--video", "dashcam_boston.mp4","--tracker", "csrt"],
mode: 'text'
}
let pyshell = new PythonShell("./opencv_object_tracking.py", options);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.