正在尝试设置调用Python脚本的Node.Js服务器

正在尝试设置调用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文件

我正在尝试设置一个简单的Node.Js服务器,在点击url时调用Python脚本。下面给出了python和NodeJS服务器文件

当我点击服务器url时。页面加载!但随后服务器崩溃,并出现以下错误(在cmd提示符中):

在Web浏览器控制台中执行以下操作:

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']
    };