📜  运行带有从父项导入的 python 模块 - TypeScript (1)

📅  最后修改于: 2023-12-03 15:41:54.935000             🧑  作者: Mango

运行带有从父项导入的 Python 模块 - TypeScript

在 TypeScript 中运行带有父项导入的 Python 模块需要使用 child_process 模块中的 spawn 方法。此方法允许我们从 TypeScript 中启动 Python 脚本,并在脚本中使用 import 语句导入其他 Python 模块。

准备工作

首先,您需要安装 Python 和 TypeScript。确保您的 Python 环境中已经安装了所需的 Python 模块,并已在您的项目目录中创建了您的 Python 脚本。您可以使用 require 语句加载 child_process 模块。

const { spawn } = require('child_process');
运行 Python 脚本

要从 TypeScript 中启动 Python 脚本,您需要使用 spawn 方法,并提供您的 Python 脚本的路径。

const pyScript = spawn('python', ['/path/to/python/script.py']);

您也可以为 spawn 方法提供其他选项,例如向 Python 脚本传递参数或设置环境变量。

const pyArgs = ['--arg1', 'value1', '--arg2', 'value2'];
const pyOptions = { env: { PYTHONPATH: '/path/to/python/modules' } };

const pyScript = spawn('python', ['/path/to/python/script.py', ...pyArgs], pyOptions);
导入 Python 模块

在您的 Python 脚本中,您可以使用 import 语句来导入其他 Python 模块。请注意,由于您是从 TypeScript 中启动 Python 脚本,因此您可能需要使用相对路径来导入模块。

import sys
sys.path.append('/path/to/python/modules')

from my_module import MyModule
获取 Python 脚本输出

在您的 TypeScript 代码中,可以使用 stdoutstderr 事件来监听 Python 脚本输出。

pyScript.stdout.on('data', (data) => {
  console.log(`stdout: ${data}`);
});

pyScript.stderr.on('data', (data) => {
  console.error(`stderr: ${data}`);
});

pyScript.on('close', (code) => {
  console.log(`child process exited with code ${code}`);
});
总结

在 TypeScript 中运行带有父项导入的 Python 模块需要使用 child_process 模块的 spawn 方法。您可以为 spawn 方法提供您的 Python 脚本的路径,参数和选项。要导入其他 Python 模块,请使用 import 语句并确保将正确的路径添加到 sys.path 中。您可以通过监听 stdoutstderr 事件来捕获 Python 脚本的输出。