首页 > 编程语言 >使用Jep在Java中调用Conda虚拟环境下的Python

使用Jep在Java中调用Conda虚拟环境下的Python

时间:2024-03-30 20:57:06浏览次数:31  
标签:jepper Jep Java Python PYTHONPATH envs 虚拟环境

为了解决毕设中需要用到在Java中调用Python的问题,我在网上寻找对应的解决方案。似乎没有太好的解决方案:Jython至今仍是Python2,Py4J似乎也不再活跃更新。所幸我找到了Jep这一神器。正当我雀跃不已,却又发现了一些问题,在两个小时的艰难攻关之下,这些问题逐渐迎刃而解。

问题一:无法找到dll依赖

Exception in thread "main" java.lang.UnsatisfiedLinkError: Q:\Sill-\anaconda\envs\jepper\Lib\site-packages\jep\jep.dll: Can't find dependent libraries

原因是我没有激活对应的虚拟环境,当我激活对应环境后,不再出现以上报错。

问题二:无法找到PYTHONHOME和PYTHONPATH环境变量

Python path configuration:
  PYTHONHOME = (not set)
  PYTHONPATH = (not set)
  ....
Current thread 0x00004a90 (most recent call first):
<no Python frame>

解决办法很简单,在运行Jar的终端内手动添加环境变量

$env:PYTHONPATH="Q:\Sill-\anaconda\envs\jepper"
$env:PYTHONHOME="Q:\Sill-\anaconda\envs\jepper"

再次运行Jar包,问题解决。

标签:jepper,Jep,Java,Python,PYTHONPATH,envs,虚拟环境
From: https://www.cnblogs.com/seal-sill/p/18106014

相关文章

  • java反序列化-CC1
    CC1目录CC11、Transformer接口2、Transformer的实现类ConstantTransformerChainedTransformerInvokerTransformer3、寻找调用链TransformedMap(功能理解)LazyMap(调用链分析)1、Transformer接口从Transformer接口开始,对于这个接口是这么介绍的:它被实现为一个将一个对象转换为......
  • 2024年3月30号java学习
    集合 集合中的长度不固定,集合中只能存储引用数据类型,不能够存放基本数据类型,需要变成基本数据类型对应的包装类。基本数据类型的包装类ArrayListArrayList<类型>变量名=newArrayList<>();示例代码packagearrayList;importjava.util.ArrayList;publicclassar......
  • Java基础 TCP协议下,收发数据代码实现
     --------------------------------------------------------------------------------------------------------------------------------- 代码实现:1.发送数据:publicstaticvoidmain(String[]args)throwsException{//1.创建Socket对象。细节:在创建对象的同......
  • 【Java多线程】7——阻塞队列&线程池
    7线程池⭐⭐⭐⭐⭐⭐Github主页......
  • JAVA学习-网络编程.Java11标准化的HTTP Client
           Java11引入了标准化的HTTPClient,它提供了一种现代化、灵活且易于使用的方式来进行HTTP通信。下面是关于Java11标准化的HTTPClient的概述以及与其他比较和高级应用的说明:1.概述:       Java11标准化的HTTPClient是一种替代HttpURLConnection的新......
  • (day 24)JavaScript学习笔记(异常的处理)
    概述         这是我的学习笔记,记录了JavaScript的学习过程。在写博客的时候我会尽量详尽的记录每个知识点。如果你完全没接触过JavaScript,那么这一系列的学习笔记可能会对你有所帮助。    今天学习异常的处理,主要是捕获异常、throw关键字主动抛异常、Error......
  • JavaImprove--Lesson07--异常处理的两种方式,collection集合
    一.Java异常处理的两种方式Java的异常机制是一种处理程序中错误的方式,它包括异常的抛出、捕获和处理。异常是在程序运行过程中发生的异常事件,如数学运算中的除0异常、数组越界、空指针异常等。在Java中,异常被视为一种对象,可以通过使用try-catch语句块来捕获和处理。当try块中的......
  • java计算机毕业设计(附源码)学校实验课教学管理(ssm+mysql+maven+LW文档)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义标题:实验课教学管理的创新与实践在现代教育体系中,实验课作为理论与实践相结合的关键环节,其教学质量直接关系到学生的创新能力和实践技能的培养。随着科技的快速发......
  • java计算机毕业设计(附源码)学校旧书交易网站(ssm+mysql+maven+LW文档)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义标题:构建学校旧书交易网站的探索之旅在知识迅速更新换代的今天,学生们对于教材和辅导书籍的需求不断增长,而每学年结束后,大量使用过的旧书往往被束之高阁,造成资源的......
  • Java从坚持到精通-SpringCloud(持续更新中)
    1.什么是SpringCloud以及与SpringBoot的关系SpringCloud是一系列框架的有序集合。SpringBoot为SpringCloud提供了代码实现环境,使用SpringBoot将其他组合有机融合到了SpringCloud的体系中了。所以说,SpringCloud是基于SpringBoot的微服务系统架构的一站式解决方案。2.SpringClo......