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()