Pythonでimportしたローカルpackageがアップデートされない

エラー発生状況

  • Pythonのpackageを開発中、実行ファイルでpackageをimportして使っているが、元のpackageのファイルを更新しても反映されない
    • 例えば、下記のディレクトリ構成で、run.pyでimport package.moduleAをしてmoduleA.pyで定義した関数funcAを使っていたが、moduleA.pyの関数funcAをfuncBに更新してもrun.pyで実行するとfuncBが存在しない
      ├── run.py
      ├── package/
      │ └── moduleA.py

解決策

  • moduleAのキャッシュをクリアする
  • run.pyで下記のコードをimport package.moduleAの前に入れる
import sys
try:
    del sys.modules['package.venn_image']
except:
    pass

参考

エラー対応Python

Posted by ttnt