完美解決ModuleNotFoundError: No module named '_bz2'和AttributeError: module 'pandas' h...

筆者環境:操做系統Ubuntu,Python3.7.4python

最近筆者在虛擬機上安裝pandas時候遇到了各類各樣的問題,在導入pandas包時就提示出錯。而後藉助查找各類資料最終解決了問題。linux

第一個錯誤就如上述ModuleNotFoundError: No module named '_bz2',在查閱資料後發現是虛擬機中安裝的Python3.7沒有_bz2.cpython-37m-x86_64-linux-gnu.so這個文件,可是能夠在3.6版本中找到該文件。git

隨後筆者在Python3.6的安裝目錄中找到了_bz2.cpython-36m-x86_64-linux-gnu.so,而後經過指令將這個文件copy到了3.7.4的對應目錄中,而後將_bz2.cpython-36m-x86_64-linux-gnu.s重命名爲_bz2.cpython-37m-x86_64-linux-gnu.so後,再次運行代碼就不提示錯誤了。github

可是運行出來仍是錯誤的,接下來就提示了另外一個錯誤AttributeError: module 'pandas' has no attribute 'compat',筆者在網上查閱相關資料,有建議下降pandas版本的,還有建議升級版本的。筆者在重裝了幾回新舊版本後,此問題都未獲得解決。後來仔細觀察錯誤發現,錯誤代碼在pandas的__init__.py文件中的if pandas.compat.PY37這個方法中。ide

其中有一個警告,大概意思是Panel這個類已經從pandas中移除。而後筆者在開發文檔v0.20.1中找到了這樣一段話:this

Deprecate Panel

Panelis deprecated and will be removed in a future version. The recommended way to represent 3-D data are with a MultiIndexon a DataFramevia the to_frame()or with the xarray package . Pandas provides a to_xarray()method to automate this conversion ( GH13563 ).spa

大體意思就是Panle在之後的版本中都會移除,取而代之的是multiindexon或dataframevia to_frame()或xarray來表示三維數據。操作系統

筆者嘗試將if else方法註釋掉後,全部錯誤均被解決,可是Panel類已經不能再用了。code

目前使用中沒有遇到任何其餘問題。blog

相關文章
相關標籤/搜索