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应用程序才能生效。

    评论

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况