node-calls-python-embedded
v0.0.13
Published
Modification of the node-calls-python module, allowing you to run an embedded python interpreter within node.
Downloads
41
Maintainers
Readme
node-calls-python-embedded - call an embedded Python interpreter from Node.js directly in-process without spawning processes
modification of the "node-calls-python" module
Common Issues
Node-Gyp Issues
When re-building the node-calls-python module (after modifications), the following error:
LINK : fatal error LNK1181: cannot open input file 'Cannot find PYTHON.lib' [C:\Users\toby\Documents\Sonobotics\Sonobot
ics-App\node_modules\node-calls-python\build\nodecallspython.vcxproj]
Usually means that the pythonXX\Scripts\
directory (of the python development instance) has not been added to the path.
DLL issues
When facing an electron error like this (after calling npm start):
Error: The specified module could not be found.
\\?\C:\Users\toby\Documents\Sonobotics\Sonobotics-App\node_modules\node-calls-python\build\Release\nodecallspython.node
at process.func [as dlopen] (node:electron/js2c/node_init:2:2559)
at Module._extensions..node (node:internal/modules/cjs/loader:1470:18)
at Object.func [as .node] (node:electron/js2c/node_init:2:2559)
at Module.load (node:internal/modules/cjs/loader:1215:32)
at Module._load (node:internal/modules/cjs/loader:1031:12)
at c._load (node:electron/js2c/node_init:2:17025)
at Module.require (node:internal/modules/cjs/loader:1240:19)
at require (node:internal/modules/helpers:179:18)
at Object.<anonymous>
It usually means that the "node-calls-python" module cannot find the pythonXX.DLL
file.
Make sure this file is added to node-calls-pytho\build\Release
as the nodecallspython.node
file will immediately look for dependencies in this location.
The difficulty is that this directory is wiped every time the module is recompiled.
Alternatively, adding it to the root sonobotics-app
directory seems to work too.
In the packaged app we want this file next to the .exe, so we use the "extraResources" term in the package.json file to move it there when packaging