我刚刚了解到我们可以使用以下npm包在Node JS中运行Python脚本。
python-shell
是否可以使用相同的库安装Python包?
例如
如果无法使用此包,请问还有其他方法可以实现吗?
例如
pip install package
我需要导入一些库来处理Python脚本。如果无法使用此包,请问还有其他方法可以实现吗?
pip install package
我需要导入一些库来处理Python脚本。这是第一个文件: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
。
你可以使用类似document.getElementById().value()
的方法从你的HTML中获取包名。
以下是第二个文件: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
输出:rahul@RNA-HP:~$ node test.js
[ "['Requirement already satisfied: pytube in ./.local/lib/python3.7/site-packages (9.5.0)', '']" ]
python-shell
从Node.js安装Python包吗? - Rahulpip
安装呢?还是你想将其整合到其他东西中? - Rahul