在python cgi-bin中调用外部函数

时间:2016-03-05 13:17:26

标签: python apache cgi torch

我试图在Python cgi-bin脚本中调用Torch 7程序。

如果我从命令行运行以下Python脚本:

# -*- coding: utf-8 -*-
from subprocess import call
call (['th', 'sample.lua', 'cv/lm_lstm_epoch3.54_0.9324.t7', '-gpuid', '-1', '-primetext', '"אמר הגאון הגרפקא המן איש טוב היה שנאמר"', '-temperature', '1.0', '-length', '1000'])

这很好用,我得到以下输出

  

ubuntu @ ip-172-31-45-110:/ usr / lib / cgi-bin $ python test2.py   创造一个... ...

     

播种“אמרהגאוןהג​​רפקאהמןאישטובהיהשנאמר”

     

“אמרהגאוןהג​​רפקאהמןאישטובהיהשנאמר"זהיקרקידומישכןבלבדומחלליןעליואותוממנווזכהזהלאסולדדינרהקדשומחופהאתאשתומביתהרןוביניהןאבליוםאחדולמניןשניהימיבתןככלוםזכותדכתיבאשרבחרםאםאשרעשולאכלחטאתקמיהבדין נקראולאמהוציאהולאניקבהלאאמרליהאםתימצילומרעדדכםראשוןבגובהוהריז]נידוןטומאהמידקיסאאיתלמודהומיאיכאלמיפרךמהלשרעתולאהתנאולאא"להכיקאמראפילושחיושוברושלמקוםהראשוןכסיפווהריחיליןבביתהמקדשוהיכיממעיטריםאחרינאועיבורבישראלמיאיכאמידיאישתימירחודשקיל אמרלהואישבעיםשנהשעוריםעליןא"כרביי איברמישראלאמרלונפשגזרקונשיבתרצות

但是,如果我尝试从cgi-bin脚本调用Torch 7

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import subprocess
import os, sys

import cgi, cgitb


print "Content-Type: text/html"
print                
print "<TITLE>CGI script output</TITLE>"

output = ""

output = subprocess.call (['th', 'sample.lua', 'cv/lm_lstm_epoch3.54_0.9324.t7', '-gpuid', '-1', '-primetext', '"אמר הגאון הגרפקא המן איש טוב היה שנאמר"', '-temperature', '1.0', '-length', '1000'])

print output

然后我没有输出到网页,apache错误日志也没有错误。

由于

2 个答案:

答案 0 :(得分:0)

您希望使用check_output来存储正在执行的命令的输出。 call不会这样做。调用只会为您提供正在执行的内容的返回码。

subprocess.check_output(['th', 'sample.lua', 'cv/lm_lstm_epoch3.54_0.9324.t7', '-gpuid', '-1', '-primetext', '"אמר הגאון הגרפקא המן איש טוב היה שנאמר"', '-temperature', '1.0', '-length', '1000'])

答案 1 :(得分:-1)

可能你可以尝试lutorpy然后你可以直接用python运行火炬代码。您可以使用require(&#34; sample&#34;)导入sample.lua模块,然后像运行python函数一样运行内部函数。