DRYな備忘録

Don't Repeat Yourself.

pkg_resources.DistributionNotFound: The '自作pythonスクリプト==0.0.3' distribution was not found and is required by the application

問題

jobとしてシェルスクリプトを投げるタイプのjob-queueシステムにおいて、シェルスクリプトから pip install --user で入れたpython binを参照させると、どうやらimportでコケている模様。

# 中略
pkg_resources.DistributionNotFound: The 'filtertool==0.0.3' distribution was not found and is required by the application

原因

  • --user で入れたものの lib のpathは、環境変数 $PYTHONUSERBASE/lib を参照しているが、
  • job-queueシステムのシェルスクリプトではその環境変数が見つからないのでsystemのlibを見に行って、
  • 自作スクリプトがライブラリとして存在してないよ! 」という状況が起きる

解決

例) uge_cooker を使っている場合

env.json

{
    "PYTHONUSERBASE": "/home/otiai10/opt/python/2.7.10/packages"
}

DRY

Pythonスタートブック

Pythonスタートブック