1. 程式人生 > 資料庫 >Python 連線資料庫 報 AttributeError 的問題

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的吧,沒想到此時又出問題了。

如圖所示,它說“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.