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

2024-04-07

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

蟒蛇外壳 https://www.npmjs.com/package/python-shell

是否可以使用相同的库安装 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通过命令行给该文件提供参数。
您可以使用类似的方法从 HTML 中获取包名称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:

rahul@RNA-HP:~$ node test.js
[ "['Requirement already satisfied: pytube in ./.local/lib/python3.7/site-packages (9.5.0)', '']" ]

希望这可以帮助。
如果有什么可以改进的请评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以使用 python-shell 包在 Node JS 中安装 python 包? 的相关文章

随机推荐

  • 如何在输入中添加 SVG 图标?

    我需要在输入中放置图标以创建新用户 对于了解前端代码的人来说 这可能是一项非常简单的任务 但我不这么认为 这是线框 然后我展示我的代码 线框 如你看到的 输入的左侧有图标 现在我的目录中有 SVG 并准备好了 我只需要知道如何将它们放置在输
  • PHP:从递归函数返回一个数组

    我有一个像这样的数组 SimpleXMLElement Object BrowseNodes gt SimpleXMLElement Object BrowseNode gt SimpleXMLElement Object BrowseNo
  • 使用fread读取带有双引号和不正确转义字符的数据

    我尝试使用以下命令加载大型数据文件 约 2000 万行 fread 来自数据表包裹 然而 有些行却造成了很大的麻烦 最小的例子 text csv contains id text 1 Oops The Georgia fread text
  • jQuery UI 仅在特殊区域删除元素

    我对 jQuery UI 的拖放有疑问 我创建动态的新元素 并将其放置在屏幕上的四个区域之一 这些元素是可拖动的 我可以将它们放置在整个屏幕上 但我希望这些元素只能放置在三个区域之一 我在这里创建了一个完整的工作示例 http jsbin
  • 如何在 Java 中格式化数字?

    如何在 Java 中格式化数字 什么是 最佳实践 在格式化之前我需要对数字进行四舍五入吗 32 302342342342343 gt 32 30 7323 gt 0 73 etc From 这个线程 http bytes com forum
  • RHEL w/Tkinter & Python3 - 更改活动名称“Tk”

    我正在尝试为 Tkinter 应用程序设置 Activity 不确定正确的术语 请参阅屏幕截图 名称 我不是 Linux 专家 新手 甚至不是初学者 但是关于对话框的系统将我的测试机器列为 Fedora 30 窗口管理器是 Gnome 代码
  • C#中如何检查组合框中的项目是否被选中?

    我有一个组合框 必须在其中显示数据库中的日期 用户必须从组合框中选择一个日期才能进一步进行 但我不知道如何让用户意识到首先从组合框中选择该项目才能进一步进行 如果用户没有从组合中选择日期 应该遵循什么流程才能收到消息 if string I
  • WPF ToggleButton 不正确的呈现行为

    这是怎么回事 如何解决 按我的切换按钮 现在看起来就像立即按下 选中 同时 MyToggleButton Checked 处理程序禁用 MyToggleButton 现在按非切换按钮 启用 我们看到什么 MyToggleButton 看起来
  • 对于具有默认分配器的标准容器,std::container::size_type 是否保证为 size_t?

    Like std string
  • TFS2018 是否仍支持 ISubscriber?

    截至 TFS 2017 Plugins 文件夹中有一个名为 Microsoft TeamFoundation Framework Server 的库 它包含 ISubscriber 接口 可以覆盖该接口以附加挂钩并添加事件行为 例如构建完成
  • Laravel 用户登录时如何设置会话变量

    发票应用程序开发正在使用 Laravel 进行 我为每个用户存储日期和金额格式settings table 当用户登录自己的帐户时如何设置Session多变的 请提出任何建议 我正在使用 Laravel 5 3 当然 文档告诉我们如何存储会
  • 未使用参数 ngrams

    我使用 Quanteda 进行文本分析 我使用这个命令 corp df2 lt tokens df text remove punct TRUE remove numbers TRUE remove symbols TRUE gt toke
  • XCode 4.4 iOS 5.1 模拟器问题

    我将我的 mac book 更新为 mountain lion 并将 Xcode 更新为 4 4 版本 在之前的版本中 我关闭 iOS 模拟器没有任何问题 并且 Xcode 自动停止构建过程 但现在如果我关闭 iOS 模拟器 Xcode 中
  • Scala:SeqT monad 转换器?

    如果我们有这样的两个函数 def findUserById id Long Future Option User def findAddressByUser user User Future Option Address 然后我们就可以使用
  • “关闭”某物是什么意思?

    我试图理解闭包 但从字面上看every我能找到的闭包定义使用了相同的神秘而模糊的短语 结束 什么是closure 哦 这是一个函数结束另一个功能 但我找不到 结束 的定义 有人能解释一下 A 事物 关闭 B 事物意味着什么吗 闭包是由代码指
  • 如何获取ECS集群的所有日志

    是否有一些 AWS 命令 get 可以从 ECS 集群的所有服务 任务中获取日志 就像是 aws ecs logs cluster dev or aws ecs describe clusters cluster dev logs 例如 必
  • 每周运行一次 php 脚本

    每个星期一我都需要清空 MYSQL 数据库的几个字段 首先 我考虑使用 cron 作业 但我的 Web 托管提供商 fatcow com 既不支持 SSH 也不支持通过命令行访问共享服务器 我还考虑过检查 date 以查看是否是星期一并执行
  • 从不规则时间序列创建规则 15 分钟时间序列

    我的 csv 文件中有一个不规则的时间序列 包含 DateTime 和 RainfallValue C SampleData csv DateTime RainInches 1 6 2000 11 59 0 1 6 2000 23 59 0
  • 树 /f cmd 修改日期。 Windows Powershell

    我需要创建一个 tree驱动器的文件夹 子文件夹和修改日期的列表 tree f命令效果很好 但我需要添加修改日期 我怎样才能做到这一点 它不会那么漂亮 但你可以使用 Recurse使用 Get ChildItem 选项来查找所有这些 此外
  • 是否可以使用 python-shell 包在 Node JS 中安装 python 包?

    我刚刚知道我们可以使用下面的 npm 包在 Node JS 中运行 Python 脚本 蟒蛇外壳 https www npmjs com package python shell 是否可以使用相同的库安装 python 包 就像是pip i