I would like to eval multiple snippets of python code in one python process from Javascript such that variables and defs set in earlier snippits are available in later ones. Here's my first attempt:
var {PythonShell} = require('python-shell')
PythonShell.runString(
`def my_function():
print("Hello")
my_function()`, undefined, function(err, message){
if(err){ console.log(err.message) }
else { console.log(message) }
})
That works fine. The output in the console is: ["Hello"] Now I execute:
PythonShell.runString(
`my_function()`, undefined, function(err, message){
if(err){ console.log(err.message) }
else { console.log(message) }
})
and the output in the console is: NameError: name 'my_function' is not defined but I wanted: ["Hello"] I suspect the 2nd call to runString is starting a new Python process. I guess what I need to know is: How do I effectively make a 2nd call to runString that uses the same Python process as the first call?
question from:https://stackoverflow.com/questions/65876022/npm-python-shell-persistent-process-from-javascript