Python安装Jnius库报错DLL load failed:找不到模块

简介: Python安装Jnius库报错DLL load failed:找不到模块

项目场景:


项目目的是想在python里面尝试调用JAVA代码去实现一系列的操作,首先想要跑通一个DEMO。在python里面想要跑通一个JAVA文件实现调用以及使用一系列的函数我们首先需要考虑Python拥有哪些库可以实现这个功能。


桥接python和java的方案,更具体来说,是在python里调用java代码的方案,其实也有好几个,


pyjnius

Jpype

javabridge

py4j

jcc

网上查阅发现pyjnius还挺好使的,于是打算将pyjnius作为planA方案,于是开始行动。


问题描述


还真别说一个下午的时间全浪费在修BUG上面了,安装这个库还挺麻烦的,也是因为这些离谱奇怪的BUG让我把这些坑都给记录下来。踩坑真的太浪费时间了,希望以后有兄弟们和我一样踩坑的时候能够搜到我这篇文章顺利解决问题。


问题1:


首先直接在cmd命令提示符里面输入:


pip install pyjnius


不会成功,一般进行到一半就直接报错了超时扔出一大堆关于pip的错误,这些都是由于连接问题导致的,连接不稳定。我建议大家换个源就可以解决:

这个是清华镜像源。

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pyjnius

也可能由于版本问题报错,这里我推荐大家直接去官网上面下载自己python运行环境适配的版本:


pyjnius · PyPI


如果大家登不上去的话可以看看我上传的资源是否对应着大家的编译环境,如果是的话可以直接下载使用,亲测没问题:


pyjnius-1.4.2-cp37-cp37m-win32.whl-Python文档类资源-CSDN下载


下载回来的whl文件,大家下载完之后cd到下载的目录下面直接pip安装就好了。


问题2:

如果是anaconda上使用Jupyter的玩家直接在Environments上面查看自己的pyjnius是否安装完成了就行:


cb4bad1929984d17aac3a16e153e7d70.png


pycharm的玩家直接调用一下就好了。不出以外的话很大的概率会报错,大家可以尝试一下这段代码测试是否成功:

from jnius import autoclass
Stack = autoclass('java.util.Stack')
stack = Stack()
stack.push('hello')
stack.push('world')
print(stack.pop())

前提是我已经把gcc和cython装好了,这里就报错了: ImportError:DLL load failed。错误


原因分析:


在网上搜索了很多方法解决有关ImportError的问题,有的是pip uninstall pyjnius经过尝试该方法没有用。也重新下了适合的whl文件尝试,仍然没用。只有去官方找答案最靠谱了:


Installation — Pyjnius 1.0a1 documentation

141f0ca98f894f3a8a6f62ea106c07fd.png


官方说的很清楚了,DLL load failed:找不到模块很大的可能就在于你的Java环境没有配好。


很多人JAVA_HOME环境肯定是配置好了,关键是PATH少了一行:


C:\Program Files\Java\jdk1.7.0_79\jre\bin\server


解决方案:


打开环境变量,在用户环境变量PATH里面加入一行:


%JAVA_HOME%\jre\bin\server;



JAVA_HOME我默认大家都装好了,很简单。


然后是在系统变量PATH里面加上你下载的jdk的bin目录就好了


测试:

PATH: C:\Program Files\Java\jdk1.7.0_79\bin`


3072f8994e40470cb25777d1bd51e36e.png


问题解决。

目录
相关文章
|
3天前
|
调度 开发者 Python
Python中的异步编程:理解asyncio库
在Python的世界里,异步编程是一种高效处理I/O密集型任务的方法。本文将深入探讨Python的asyncio库,它是实现异步编程的核心。我们将从asyncio的基本概念出发,逐步解析事件循环、协程、任务和期货的概念,并通过实例展示如何使用asyncio来编写异步代码。不同于传统的同步编程,异步编程能够让程序在等待I/O操作完成时释放资源去处理其他任务,从而提高程序的整体效率和响应速度。
|
6天前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
24 0
|
5天前
|
数据采集 JSON 测试技术
Python爬虫神器requests库的使用
在现代编程中,网络请求是必不可少的部分。本文详细介绍 Python 的 requests 库,一个功能强大且易用的 HTTP 请求库。内容涵盖安装、基本功能(如发送 GET 和 POST 请求、设置请求头、处理响应)、高级功能(如会话管理和文件上传)以及实际应用场景。通过本文,你将全面掌握 requests 库的使用方法。🚀🌟
26 7
|
6天前
|
机器学习/深度学习 数据采集 算法
Python机器学习:Scikit-learn库的高效使用技巧
【10月更文挑战第28天】Scikit-learn 是 Python 中最受欢迎的机器学习库之一,以其简洁的 API、丰富的算法和良好的文档支持而受到开发者喜爱。本文介绍了 Scikit-learn 的高效使用技巧,包括数据预处理(如使用 Pipeline 和 ColumnTransformer)、模型选择与评估(如交叉验证和 GridSearchCV)以及模型持久化(如使用 joblib)。通过这些技巧,你可以在机器学习项目中事半功倍。
17 3
|
5天前
|
文字识别 自然语言处理 API
Python中的文字识别利器:pytesseract库
`pytesseract` 是一个基于 Google Tesseract-OCR 引擎的 Python 库,能够从图像中提取文字,支持多种语言,易于使用且兼容性强。本文介绍了 `pytesseract` 的安装、基本功能、高级特性和实际应用场景,帮助读者快速掌握 OCR 技术。
26 0
|
关系型数据库 MySQL 数据库
【100天精通python】Day32:使用python操作数据库_MySQL下载、安装、配置、使用实战
【100天精通python】Day32:使用python操作数据库_MySQL下载、安装、配置、使用实战
78 0
|
3月前
|
Python Windows
Python安装第三方库太慢?配置好这个速度飞起
Python安装第三方库太慢?配置好这个速度飞起
|
Python Windows
Python3+PyCharm环境的安装及配置
近期碰到有同学入门Python还不会安装并配置Python编程环境的,在这里做一期教程手把手教大家安装与配置使用(以 Python 3.9.9 以及 PyCharm 2021.3.1 为例)
678 0
Python3+PyCharm环境的安装及配置
|
3月前
|
Linux 测试技术 Python
Python笔记1 安装并配置Python
本文是作者关于Python复习笔记的系列文章第一篇,介绍了Python语言的特点、在不同操作系统上搭建Python环境的方法,包括下载编辑器和配置解释环境,并通过在编辑器中运行“Hello World!”程序来测试环境是否成功搭建。
39 0
|
6月前
|
IDE Linux 开发工具
Python安装与配置
Python安装与配置
111 0