red-data-tools/pycall.rb
Calling Python functions from the Ruby language
解决的问题
PyCall 允许 Ruby 开发者在 Ruby 应用程序中直接调用 Python 代码并使用 Python 库。它通过支持导入 Python 模块并像执行原生 Ruby 代码一样执行函数,弥合了两种语言之间的鸿沟。
工作原理
该库封装了 Python 对象和函数,为数字、字符串、数组和哈希等常见数据类型提供了自动类型转换。它将 Python 语法映射为 Ruby 友好的等效语法——例如,Python 的 classname(x) 在 Ruby 中变为 classname.new(x),关键字参数使用 Ruby 的冒号语法(例如 x: 1)处理。它还提供了在执行长时间运行的 Python 任务时管理 Ruby 全局虚拟机锁 (GVL) 的工具。
适用人群
此工具适用于需要利用 Python 丰富的库生态系统(如数据科学或科学计算工具)而无需离开 Ruby 环境的 Ruby 开发者。
亮点
- Ruby 和 Python 对象之间的自动类型转换。
- 将 Python 构造函数、可调用对象和关键字参数无缝映射到 Ruby 语法。
- 支持在长时间运行的 Python 函数调用期间释放 Ruby GVL 以提高性能。
- 兼容 Ruby 2.4+ 和 Python 3.7+。
- 包含调试工具,用于在无法自动检测时定位 Python 共享库。
相关
- 项目
- 项目
- 项目
- 项目