返回顶部
首页 > 资讯 > 后端开发 > Python >scala调用python
  • 416
分享到

scala调用python

scalapython 2023-01-31 05:01:51 416人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

Scala项目中调用python的几种方法 首先在工程目录某个地方建立了一个Python文件 test.py import sys def addNum(a, b): return a + b if __name__

Scala项目中调用python的几种方法

首先在工程目录某个地方建立了一个Python文件
test.py

import sys

def addNum(a, b):
    return a + b

if __name__ == '__main__':
    a = 3
    b = 7

    # if args input
    if len(sys.argv) == 3:
        a = int(sys.argv[1])
        b = int(sys.argv[2])

    x = addNum(a, b)
    print x

    with open("src/test.txt", 'w') as f:
        f.write("the result: " + str(x))

在scala里面启动一个本地进程,执行python程序

// method1: launch local runtime process to exec python file
// just exec file
val proc1 = Runtime.getRuntime().exec("python src/test.py")
proc1.waitFor()
// exec with parameters
val proc2 = Runtime.getRuntime().exec("python src/test.py 8 9")
proc2.waitFor()

其中:

  • 可以在命令行中带参数
  • 本地python环境中的第三方扩展包可以正常使用

Jpython(Http://www.jython.org/)是一个java的扩展包,在scala里面可以直接调用

首先将Jpyhon standaone的jar文件导入到scala工程并引用

import org.python.core.{PyFunction, PyInteger, PyObject}
import org.python.util.PythonInterpreter
// method2: use Jpython module
val interpreter = new PythonInterpreter()
// exec python code
interpreter.exec("print 'hello jpython'")
// exec python file in JVM
val py_file = new FileInputStream("src/test.py")
interpreter.execfile(py_file)
py_file.close()
// call python funtion and return result (oops: work in java but not in scala ~)
//        val a = 15
//        val b = 17
//        val func = interpreter.get("addNum", PyFunction.class).asInstanceOf[PyFunction]
//        val pyobj = func.__call__(new PyInteger(a), new PyInteger(b))
//        println(pyobj.toString())

其中:

  • 用Jpython理论上可以用三种方式调用python:执行语句,执行文件,调用函数,但是由于莫名其妙的原因,scala中call python的函数不能用
  • 用Jpython的方式无法使用python本地安装的第三方扩展包,因为Jpython运行在JVM上
  • 这种方式不建议使用

--结束END--

本文标题: scala调用python

本文链接: https://lsjlt.com/news/188258.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • scala调用python
    scala项目中调用python的几种方法 首先在工程目录某个地方建立了一个python文件 test.py import sys def addNum(a, b): return a + b if __name__...
    99+
    2023-01-31
    scala python
  • scala怎么调用python算法
    在Scala中调用Python算法有多种方法,以下是几种常用的方法:1. 使用Scala的sys.process库调用Python脚...
    99+
    2023-10-23
    scala python
  • Scala递归函数调用自身
    目录1. 概述2. 作用3. 使用方法4. 例子5. 什么时候使用为什么要进行尾递归优化1. 概述 Scala递归函数是一种函数可以调用自身的函数,直到满足某个特定的条件为止。在函数...
    99+
    2023-05-14
    Scala递归函数 Scala递归函数调用
  • Scala递归函数怎么调用
    这篇文章主要介绍“Scala递归函数怎么调用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Scala递归函数怎么调用”文章能帮助大家解决问题。1. 概述Scala递归函数是一种函数可以调用自身的函数...
    99+
    2023-07-05
  • 基于Scala和Java方法的相互调用
    目录在Java中调用Scala的方法呢?1.首先是静态方法2. JAVA中调用Scala的方法3.Scala中的非静态方法4.Java中的调用scala中调用java方法报错在Sca...
    99+
    2024-04-02
  • scala 调用 java 方法参数匹配问题
    scala调用java的FastJson时发生了一个方法参数匹配问题: scala和java几乎没有区别,可以互相调用。注意这里说的是几乎,总有那么少数,出人意料的惊喜在告诉你,scala就是scala。 ...
    99+
    2023-06-03
  • scala常用操作
    scala常用操作 版本信息python3.7pyspark2.4.0 from pyspark import SQLContext,SparkContext,SparkConf conf = SparkConf() sc = Spar...
    99+
    2023-01-31
    常用 操作 scala
  • Scala Trait怎么使用
    这篇文章主要介绍“Scala Trait怎么使用”,在日常操作中,相信很多人在Scala Trait怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Scala Trait怎么使用”的疑惑有所帮助!接下来...
    99+
    2023-06-19
  • Scala Option怎么使用
    本篇内容介绍了“Scala Option怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  在Scala中Option类型样例类用来表...
    99+
    2023-06-02
  • 怎么使用Scala语言
    这篇文章主要讲解了“怎么使用Scala语言”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用Scala语言”吧!为什么递归会受到忽视为 了回答这一问题,...
    99+
    2024-04-02
  • scala集合怎么使用
    本篇内容主要讲解“scala集合怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“scala集合怎么使用”吧!List// 字符串列表val site: Lis...
    99+
    2023-06-02
  • python调用调用Linux命令
    如何调用Linux命令下面代码演示了调用一个shell命令, 其中,命令的输出会存储到result变量中, 而命令的返回值,则存储到exitcode中,由此可见,调用shell命令还是很方便的:import commandsexitcode...
    99+
    2023-01-31
    命令 python Linux
  • python调用golang并回调
    最近折腾python交互,也真够呛的,一连玩了好几天,被虐的不要不要的。天天各种百度,Google之间。好吧,废话少说,转入我们的正题。其实,py调用go一般的函数,只是第一道坎,正主其实是py调用go,并且go还回调py!!!网上其实这...
    99+
    2023-01-31
    回调 python golang
  • Scala中Trait有什么作用
    这篇文章主要介绍“Scala中Trait有什么作用”,在日常操作中,相信很多人在Scala中Trait有什么作用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Scala中Trait有什么作用”的疑惑有所帮助!...
    99+
    2023-06-17
  • Scala提取器怎么使用
    本篇内容主要讲解“Scala提取器怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Scala提取器怎么使用”吧!Scala 提取器是一个带有unapply方法的对象。unapply方法算是...
    99+
    2023-06-19
  • Scala for循环怎么使用
    本篇内容介绍了“Scala for循环怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!基本语法:变量,变量的定义:不可变:val a ...
    99+
    2023-06-02
  • Scala抽象类怎么应用
    这篇文章主要讲解了“Scala抽象类怎么应用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Scala抽象类怎么应用”吧!1抽象类的定义定义一个抽象类:如果某个类至少存在一个抽象方法或一个抽象...
    99+
    2023-06-02
  • C# 调用Python
    一、简介 IronPython 是一种在 NET 和 Mono 上实现的 Python 语言,由 Jim Hugunin(同时也是 Jython 创造者)所创造。 Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性...
    99+
    2023-10-07
    c# python
  • Python调用DLL
    C语言中的函数默认是__cdecl调用,C++中可用__stdcall来显示声明调用,但也可以用extern “C” 用python调用dll时需要根据不同的调用约定而使用不同的函数。但是不管什么调用,最后都必须用extern “C”...
    99+
    2023-01-31
    Python DLL
  • python调用tcl
          今天遇到一个问题,一个设备的接口API都是tcl脚本形式的,但是我的code都是python的,然后python需要调用tcl。以下是简单的解决方法。 先写一个tcl脚本(求阶乘)helloworld.tcl: #!usr/bi...
    99+
    2023-01-31
    python tcl
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作