我将尝试设置一个简单的Node.Js服务器,当访问一个URL时调用Python脚本。以下是Python和Node.js服务器文件。
当我访问服务器的URL时,页面会加载!但然后服务器崩溃,并在命令提示符中给出以下错误:
在Web浏览器控制台中输入以下内容:
我已经检查了类似的问题,但它们有些不同,它们的修复方法对我没有帮助。 我已清除缓存并进行了检查。
Python文件:
当我访问服务器的URL时,页面会加载!但然后服务器崩溃,并在命令提示符中给出以下错误:
Server listening on: http://localhost:8080/
this is here so we are in
events.js:141
throw er; // Unhandled 'error' event
^
Error: spawn C:UsersShubhamAnaconda3libos.py ENOENT
at exports._errnoException (util.js:837:11)
at Process.ChildProcess._handle.onexit (internal/child_process.js:178:32)
at onErrorNT (internal/child_process.js:344:16)
at doNTCallback2 (node.js:429:9)
at process._tickCallback (node.js:343:17)
在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')
Node.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);
});
Error: spawn C:UsersShubhamAnaconda3libos.py
这看起来像是一个文件路径吗?你可能需要转义反斜杠。 - OneCricketeerpythonPath
需要指向Python可执行文件,而不是Python脚本。 - OneCricketeervar options
是如何成为内部信息的?例如,你需要使用C:\\Users
。 - OneCricketeervar options
,在pythonPath: 'C:\Users\Shubham\Anaconda3\lib\os.py'
处有未转义的反斜杠。 - OneCricketeer