日々精進

新しく学んだことを書き留めていきます

pythonでファイルを読み込む場合のpathを書く場合の注意点

"test/data/img.jpg"のように指定すると、working directoryの位置に依存してしまう。 pythonファイルの実行方法は

  • Flaskサーバから実行する
  • 開発環境でtestを実行する
  • CIサーバでtestを実行する

のようにいくつかあり、それぞれworking directoryが異なることが多いので 以下のようにすべき。

  • Rootにしたいフォルダのinit.pyに以下を書く
from pathlib import Path

ROOT_PATH = str(Path(__file__).parent)
  • 他のファイルはこのファイルをimportしてROOT_PATHからの相対パスの形でパスを書く
from foo_service import ROOT_PATH
os.environ["LOGGING_CONFIG"] = f"{ROOT_PATH}/test/logging.conf"

参考:

qiita.com