正在尝试设置调用Python脚本的Node.Js服务器
我正在尝试设置一个简单的Node.Js服务器,在点击url时调用Python脚本。下面给出了python和NodeJS服务器文件 当我点击服务器url时。页面加载!但随后服务器崩溃,并出现以下错误(在cmd提示符中): 在Web浏览器控制台中执行以下操作:正在尝试设置调用Python脚本的Node.Js服务器,python,node.js,Python,Node.js,我正在尝试设置一个简单的Node.Js服务器,在点击url时调用Python脚本。下面给出了python和NodeJS服务器文件 当我点击服务器url时。页面加载!但随后服务器崩溃,并出现以下错误(在cmd提示符中): 在Web浏览器控制台中执行以下操作: GET http://localhost:8080/favicon.ico net::ERR_CONNECTION_REFUSED 我检查过类似的问题。但它们有点不同,它们的修复对我没有帮助。 我已经清除了缓存并进行了检查 Python文件
GET http://localhost:8080/favicon.ico net::ERR_CONNECTION_REFUSED
我检查过类似的问题。但它们有点不同,它们的修复对我没有帮助。
我已经清除了缓存并进行了检查
Python文件:
import sys
def runForFun(artist, song, lyrics):
if lyrics is None:
print("artist:" + artist)
print("song:"+song)
print("lyrics:"+lyrics)
theme = "theme"
return theme
else :
print("lyrics: "+lyrics)
try:
runForFun(sys.argv[0], sys.argv[1], sys.argv[2])
except IndexError:
print('Please supply arguments')
节点js文件
//Lets require/import the HTTP module
var http = require('http');
var PythonShell = require('python-shell');
//Lets define a port we want to listen to
const PORT=8080;
//We need a function which handles requests and send response
function handleRequest(request, response){
var options = {
mode: 'text',
pythonPath: 'C:\Users\Shubham\Anaconda3\lib\os.py',
pythonOptions: ['-u'],
scriptPath: 'C:\Users\Shubham\Google Drive\Capstone\Theme Extraction',
args: ['value1', 'value2', 'value3']
};
console.log("this is here so we are in");
PythonShell.run('runPython.py', options, function (err, results) {
if (err) throw err;
console.log('results: %j', results, 'finished');
});
response.end('It Works!! Path Hit: ' + request.url);
}
//Create a server
var server = http.createServer(handleRequest);
//Lets start our server
server.listen(PORT, function(){
//Callback triggered when server is successfully listening. Hurray!
console.log("Server listening on: http://localhost:%s/", PORT);
});
您应该避开文件路径中的斜杠,我认为
pythonPath
应该指向Python可执行文件,而不是脚本
因此,正确的设置如下所示
var options = {
mode: 'text',
pythonPath: 'C:\\Python\\pythonw.exe',
pythonOptions: ['-u'],
scriptPath: 'C:\\Users\\Shubham\\Google Drive\\Capstone\\Theme Extraction',
args: ['value1', 'value2', 'value3']
};
不过,总的来说,除非您特别需要Node.js,否则为什么不使用Python web框架,只需导入脚本即可运行它呢?请阅读该错误<代码>错误:spawn C:UsersShubhamAnaconda3libos.py这看起来像文件路径吗?您可能需要避开反斜杠。另外,我认为
pythonPath
需要指向python可执行文件,而不是python脚本。代码中的var options
如何是内部的?你需要C:\\Users
,例如不,不是var选项,我是在回复你的第一条评论。正在研究你的第二个建议。谢谢。我的评论是相关的。您的错误指的是var选项
,其中在pythonPath处有未替换的反斜杠:“C:\Users\Shubham\Anaconda3\lib\os.py”
我只是想学习一下。我还将尝试python web框架。谢谢
var options = {
mode: 'text',
pythonPath: 'C:\\Python\\pythonw.exe',
pythonOptions: ['-u'],
scriptPath: 'C:\\Users\\Shubham\\Google Drive\\Capstone\\Theme Extraction',
args: ['value1', 'value2', 'value3']
};