pyjnius提示缺少DLL文件
参考链接:
https://stackoverflow.com/questions/20970732/jnius-1-1-import-error
1 问题描述
在使用pyjnius来使用jar包时,出现了以下问题:
2022-11-13 13:26:42.866678: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cudart64_101.dll'; dlerror: cudart64_101.dll not found
2022-11-13 13:26:43.785389: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
NN Class imported
NN_MIP Class imported
WDP Class imported
Traceback (most recent call last):
File "example_economies.py", line 30, in <module>
value_model = PySats.getInstance().create_lsvm(seed=1)
File "D:\workspace\Python\jupyter\MyResearch\DL-ICA-master\source\pysats.py", line 49, in create_lsvm
from source.lsvm import _Lsvm
File "D:\workspace\Python\jupyter\MyResearch\DL-ICA-master\source\lsvm.py", line 41, in <module>
from jnius import JavaClass, MetaJavaClass, JavaMethod, cast, autoclass
File "D:\ProgrammingTools\miniconda\envs\ica\lib\site-packages\jnius\__init__.py", line 12, in <module>
from .jnius import * # noqa
ImportError: DLL load failed: 找不到指定的模块。2 解决方案
重新安装jnius,失败。
如果import jnius就会出现DLL,多半是因为环境变量的问题。
在你的路径环境变量(“系统变量”下)加入以下内容:
C:\Program Files (x86)\Java\jdk[YOUR JDK VERSION]\jre\bin\server
或者
C:\Program Files (x86)\Java\jre[YOUR JDK VERSION]\bin\client在环境变量中,最好应该设置一个用户变量JAVA _ HOME:
是java的安装位置,默认的安装位置如下
C:\Program Files (x86)\Java\jdk[YOUR JDK VERSION]由于 jnius 是一个java包装器,因此加载失败的DLL通常是位于“server文件夹中的“jvm.DLL”。
不过,可能还有其他 DLL 文件丢失。确保您拥有msvcr90或msvcr100以及其他通过安装 Visual Studio 2008或2010再发行版提供的软件。通过下载依赖分析软件 Walker (http://www.dependencywalker.com/)并分析 jnius.pyd 所需的 DLL,可以找到更完整的答案(我记得根据个人经验,它确实需要 msvcr100和 msvcr90)。
pyjnius提示缺少DLL文件
https://blog.fulequn.online/2022/11/Article202211132/