python調試報錯之ImportError

問題描述

前面用pycharm的remote interpreter木有問題,現切換到本地interpreter,運行代碼出現Import error: DLL load failed: 找不到指定的模塊。本地和遠程環境都是同樣配置的,同樣的代碼卻可以在本地的spyder環境下運行(都是指向同一個python interpreter)。

解決方案:包更新

在網上搜瞭解決方案,做了如下兩種批量更新的嘗試:

import pip 
from subprocess import call

for dst in pip.get_installed_distributions:
    call('pip install --upgrade'+dst.project_name,shell=True)

上面這種行不通,報錯pip無get_installed_distributions屬性。直接跳過嘗試下面的方案:

pip install pip-review
pip-review --local --interactive

更新後,但還是報錯Import error。經過多次對比和定位,碰巧發現是import keras引發(單從前面的報錯信息,完全看不出跟keras有關係,所以只能說是碰巧),最後,單獨更新keras解決了問題。

結論

  1. pycharm有時需要強制將所有包upgrade到最新版本,而spyder中不需要。
  2. pip -review並不能保證更新完所有outdated的包。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章