如何在 VS 代码中的 node.js 应用程序中使用它时导入 python 包

How to import python packages while using it in node.js application in VS code

我正在 node.js 开发一个测验应用程序。我需要一些 python 脚本来保存用户日志,所以我想使用键盘记录器在尝试测验时继续监视用户。 这是 python 键盘记录器脚本:

from pynput.keyboard import Key, Listener
import logging

log_directory = r"G:/Pythonin Node/Keylogger/key_logger/public/log_files/"

logging.basicConfig(filename = (log_directory+"keylog.txt"), level = logging.DEBUG)

def on_press(key):
    logging.info(str(key))

with Listener(on_press = on_press) as listener:
    listener.join()

脚本在 运行 中运行良好 pycharm.but 当我使用 python-shell 从节点应用程序调用它时我发现了一个错误:

{
traceback: "Traceback (most recent call last): File "script.py", line 1, in <module> from pynput.keyboard import Key, Listener ModuleNotFoundError: No module named 'pynput' ",
executable: "py",
options: null,
script: "script.py",
args: [
"xyz",
"abc"
],
exitCode: 1
}

这是简单的 json 响应。

这是我的节点代码:

app.get('/', callD_alembert);

function callD_alembert(req, res) {
    var x="xyz";
    var y="abc";
    
  var options = {
    args:
    [
      x,
      y
    ]
  }
  PythonShell.run('./script.py', options, function (err, data) {
    if (err) res.send(err);
    res.send(data.toString())
  });
}

python shell 执行简单的 python 脚本,当我使用“pynput”包并想要导入时,我不使用任何外部 package.but it.it 给出以下错误:

这里还有一个 运行 一个 python 解释器:

请帮我解决这个问题。

谢谢

看起来您正在 运行在不同环境中使用 python 解释器。

尝试将下面的代码添加到您的 python 脚本,然后 运行 来自 pycharm 并使用 PythonShell:

import sys
print(sys.executable)

如果打印的路径不同,请尝试修改您传递给 PythonShell 的选项,以便路径与您在通过 pycharm 运行脚本时拥有的路径相匹配:

var options = {
  // replace this with the path you got by running the script in pycharm
  pythonPath: 'path/to/python',
  args:
  [
    x,
    y
  ]
}