Python 连接数据库 报 AttributeError 的问题

这个问题耽误了三天时间,起因就是在连接Ingress数据库的时候报了一个AttributeError错误,说是缺少属性,后来又发现其实是缺少“jaydebeapi”模块的原因,缺少模块就pip安装呗,可没想到由此出来一系列问题,主要就是版本问题、依赖问题。

版本问题

我之前安装的是Anaconda3-2019.10-Windows-x86_64,内置python3.7,刚开始在网上寻找解决方案时确定了报错与python版本有关系,我的版本太高了,安装JPype1需要python3.6的。(JPype1下面会讲)由此我去网上找python3.6版本的Anaconda,不得不吐槽一下自己这方面的经验真的差。

在网上找了一个地址可下载Anaconda:https://repo.anaconda.com/archive/,

也找了Python版本与Anaconda版本对应的图:https://www.jianshu.com/p/f582f2a21152

Anaconda3.5.0.0中内置的python就是3.6的,下载安装即可。

依赖问题

这个问题在我初次寻找报错原因的时候就发现了,但却是其中卡住我的地方。

安装“jaydebeapi”是需要先安装好“JPype1”的,前者依赖后者的安装,所以需要先安装好JPype1,在安装JPype1时遇到的问题最大。

首先最开始我的Python是3.7版本的,所以下载的JPype也是3.7的,只是这种的当时报错了,去查了一下发现3.7的好像不太支持(我觉得可能是没有人找到正确使用方法,或者找到了没发出来)。网上有成功解决这个依赖问题的是使用JPype1 3.6 版本的,为了尽快连接成功,我也就去安装3.6的吧,没想到此时又出问题了。

Python 连接数据库 报 AttributeError 的问题_第1张图片

如图所示,它说“Microsoft Visual C++ 14.0 is required”,这个问题呢,我最开始找的方法都没用,后来是另一个同事解决了这个问题,把解决方案告诉我的。需要下载VC++运行库,

这里有详情链接:https://blog.csdn.net/qq_38161040/article/details/87929616

三种解决方式里我第二种我之前就试过,找whl库大多是需要CSDN积分的,当时都有点恨不得去买积分了。

第三个我和作者一样,试了方法,但是没用。其实小编都有说,自己当时也是着急,没细看,现在就当是多个经历,长个教训了。所以在此也推荐使用官方安装VC++运行库。

----》快捷地址:https://blog.csdn.net/qq_38161040/article/details/88203864

下载下来安装就可以了。使用默认值安装,VC++运行库安装完之后,再安装“JPype1”

pip install JPype1==0.6.3 --force-reinstall  ---若是安装不成功,把anaconda安装路径中Lib文件里site-packages中的JPype文件删掉试试。(我的安装路径E:\Anaconda3\path\Lib\site-packages)

随后就可以安装“jaydebeapi”。使用命令 pip install jaydebeapi  

至此,我的问题算是解决了,又安装了代码中需要的其他模块,我的库终于连上了。^_^

最后强调一点,JPype1的版本是要和python的版本对应的,这里我使用的python是3.6版本,JPype1 是0.6.3版本的。

我随后用的anaconda是3.5.1.0的,内置python3.6.4.

Python 连接数据库 报 AttributeError 的问题_第2张图片

 

 

你可能感兴趣的:(Python)