是否可以使用python-shell软件包在Node JS中安装python软件包?

时间:2019-05-10 14:19:38

标签: python node.js npm pip

我才知道我们可以使用下面的npm包在Node JS中运行Python脚本。

python-shell

是否可以使用相同的库安装python软件包? 像pip install package

我需要导入一些库来使用Python脚本。

如果此程序包无法实现,还有其他方法可以实现吗?

1 个答案:

答案 0 :(得分:0)

这是第一个文件:test.js

let {PythonShell} = require('python-shell');
var package_name = 'pytube'
let options = {
    args : [package_name]
}
PythonShell.run('./install_package.py', options, 
    function(err, results)
    {
        if (err) throw err;
        else console.log(results);
    })

此文件运行另一个文件install_package.py,其参数通过命令行指定给该文件。
您可以使用类似{{1}
这是第二个文件:document.getElementById().value()

install_package.py

此安装无论传递了什么软件包名称。
由于已经为我安装了软件包import os import sys os.system('python3 -m pip install {}'.format(sys.argv[1])) ,因此输出为:

pytube

可以使用rahul@RNA-HP:~$ node test.js [ 'Requirement already satisfied: pytube in ./.local/lib/python3.7/site-packages (9.5.0)' ] 代替subprocess来完成相同操作:

os

使用import subprocess import sys process = subprocess.Popen(['python3', '-m', 'pip', 'install', sys.argv[1]], stdout = subprocess.PIPE) output, error = process.communicate() output = output.decode("utf-8").split('\n') print(output) 输出:

subprocess

希望这会有所帮助。
评论是否有任何改进的地方。