Django Heroku で open(file_path) ができない...。

正 ちゃんと絶対パスで指定

from djangoproject.settings import BASE_DIR
with open(BASE_DIR + '/my_app/static/file.txt') as fp:
  # Do something...

 

相対パスはローカル環境ではOKだったけど、Heroku環境ではダメだった orz 実行時のカレントディレクトリがちゃうんやろな...。調べようかなと思ったけど面倒なのでやめました笑

"""
  FileNotFoundError at /dir_name/
  [Errno 2] No such file or directory: 
"""
with open('../my_app/static/file.txt') as fp:
  # Do something...

 

使ったコマンド

# Heroku のフォルダ構成確認
heroku run pwd

# file の有無の確認
heroku run ls -l /app/my_app/static

# shell でちょっと確認
heroku run python manage.py shell

 

関係ないけど、合わせて勉強していたこと

# http://stackoverflow.com/questions/8369219/how-do-i-read-a-text-file-into-a-string-variable-in-python
with open ("data.txt", "r") as myfile:                                    
  data = myfile.readlines()                                              
  data = myfile.read().replace('\n', '')                                 
  data = myfile.read()