2017-09-17 4 views
0

Heroku에서 내 장고 응용 프로그램을 배포하는 데 문제가 있습니다.untracked .env 파일로 Heroku에 배포

python-decouple library을 사용하고 있기 때문에 문제가 발생합니다. 내 API_KEYS을 노출시키지 않도록 사용 중입니다. 내가 BASE_DIR + '/.env' 파일에있는 모든 변수를 저장하고 내 .gitignore 파일에이 파일을 추가 한

File "/app/weather/settings.py", line 20, in <module> 
    API_KEY = config('API_KEY') 
    File "/app/.heroku/python/lib/python3.6/site-packages/decouple.py", line 197, in __call__ 
    return self.config(*args, **kwargs) 
    File "/app/.heroku/python/lib/python3.6/site-packages/decouple.py", line 85, in __call__ 
    return self.get(*args, **kwargs) 
    File "/app/.heroku/python/lib/python3.6/site-packages/decouple.py", line 70, in get 
    raise UndefinedValueError('{} not found. Declare it as envvar or define a default value.'.format(option)) 
decouple.UndefinedValueError: API_KEY not found. Declare it as envvar or define a default value. 

:

내가 점점 오전 오류입니다.

이 문제의 해결책은 무엇입니까?

답변

1

Heroku에서 추적하지 않은 파일의 설정을로드 할 수 없습니다. 그것의 filesystem is ephemeral; 수동으로 추가하는 항목은 다음 번에 dyno를 다시 시작할 때 손실됩니다. 이 happens frequently입니다.

"헤로 꾸 웨이"는 put your settings in environment variables입니다. 환경 변수는 모든 동력계 사용할 수 있으며, 두 가지 주요 혜택이됩니다

당신의 설정을 당신은 코드를하지 않고 환경 변수를 변경할 수 있습니다
  • 코드 저장소에 노출되지

    변경을 행복하게, python-decouple respects environment variables since version 3.0. 모든 설정에 대해 환경 변수를 추가 한 다음 성공적으로 배포 할 수 있어야합니다. (이전에이 라이브러리를 사용하지 않았지만 모든 설정이 환경에서 발견되면 .env 파일이 필요하지 않은 것 같습니다.)