HoRinbb 2020-02-24 21:52 采纳率: 0%
浏览 684

Java使用Jython,如何切换python项目

##Java使用Jython,如何切换python项目
###假设C盘下有这样的目录结构(两个包含python代码的文件夹):


文件夹:C:/jython/p1

图片说明


文件夹:C:/jython/p2

图片说明


###我的代码:(执行结果已经在注释中)

public class Demo1 {
    public static void main(String[] args) {
        PySystemState sys = Py.getSystemState();
        sys.path.add("C:/Jython/p1");
        PythonInterpreter i1 = new PythonInterpreter(null,sys);

        /**
         * 输出:
         * 调用了p1/t1.m1
         * 执行p1/t2完毕
         */
        i1.execfile("C:/Jython/p1/t2.py");

        sys.path.remove(4,5);//根据下标删除C:/Jython/p1
        sys.path.add("C:/Jython/p2");
        PythonInterpreter i2 = new PythonInterpreter(null,sys);
        /**
         * 输出:
         * 调用了p1/t1.m1
         * 执行p2/t2完毕
         */
        i1.execfile("C:/Jython/p1/t2.py");

    }
}

###现象:
第二个输出给人的感觉就是p2中的t1.py没有被导入。

###问题:
怎样才能让第二个输出语句输出的是调用p2/t1.m1?即让p2/t1.py覆盖原有的p1/t1.py

###我所知道:
Py.getSystemState()获取到的是Python中的sys(Jython Api解释),所以应该怎样设置Python文件的目录,用什么对象/操作进行目录地址的存储???

  • 写回答

1条回答 默认 最新

  • 刘刘刘刘刘先生 2023-10-12 09:47
    关注
    1. 安装新的Python环境
      首先需要在你的机器上安装新的Python环境。如果你希望使用不同的Python版本,可以在你的机器上安装多个Python版本,然后在Java中指定使用哪个Python环境。如果你只是想切换Python项目,那么只需要安装新的Python环境即可。

    2. 更改Jython配置
      在Java中使用Jython时,需要配置Jython的路径。在切换Python项目时,需要将Jython的路径指向新的Python环境。可以通过以下方法更改Jython配置:

      // 设置Jython的路径
      Properties props = new Properties();
      props.setProperty("python.home", "/path/to/new/python");
      PythonInterpreter.initialize(System.getProperties(), props, new String[] {});
      // 其中,/path/to/new/python是新的Python环境的路径。
    
    1. 更改Python脚本或函数
      如果新的Python项目与旧项目使用不同的模块或库,那么需要相应地更改Python脚本或函数。可以通过在Python脚本或函数中使用import语句来引入需要的模块或库。

    2. 测试新的Python环境
      在更改Jython配置和Python脚本或函数后,可以通过在Java中调用Python函数或脚本来测试新的Python环境是否正常工作。

    总之,切换Python项目的方法主要是更改Jython配置和Python脚本或函数。需要注意的是,在更改Jython配置后,需要重新启动Java应用程序才能生效。

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog