search
LoginSignup
189

More than 1 year has passed since last update.

posted at

updated at

【GitHub】に載せたくない環境変数の書き方 Python

概要

Railsでは外部に見せたくない環境変数の記載は多くあるが,
Pythonは少ないのでPythonにおける環境変数の記載方法を記載する.

dotenvとは

・環境変数(API keyなど)を見せずにGitHubにアップロードする方法
・テンプレートを指定でき,API keyを入れ込めばすぐ使える

Pythonでのdotenv

Pythonのdotenvは,python-dotenvと少し名前が違っている.
https://github.com/theskumar/python-dotenv

実際の使用方法例

Install

$ pip install python-dotenv

pip installの使い方は他のサイトを参照してください

環境変数の記入方法

.env
API_KEY = "XXXXXXXXX"

環境変数を.envというファイル名で記入する.
この.envファイルにはAPI KEYの情報が入っているので.gitignoreの対象にする
また,GitHubでcloneしたときに.envのテンプレートを知るために,
.env.sampleというものを用意しておくと良い.
.env.sampleを参考にし

.env.sample
API_KEY = "<API_KEY>"

当然だが,.env.sampleにはAPI keyの記入は控える.
.env.sampleはテンプレートとなるのでGitHubにpushする.

dotenvを用いた.envからのAPI keyの読み出し

settings.py
# coding: UTF-8
import os
from os.path import join, dirname
from dotenv import load_dotenv

dotenv_path = join(dirname(__file__), '.env')
load_dotenv(dotenv_path)

AP = os.environ.get("API_KEY") # 環境変数の値をAPに代入

環境変数を使用する

settings.pyに環境変数の値を代入した変数APがあるので,settings.pyをimportする.

sample.py
# coding: UTF-8
import settings

API_KEY = settings.AP

## 以降ソースコード

あとがき

今回の記事はサンプルが少ないので,実際に筆者が作った
Twitterのつぶやきが出来るソースコードを貼っておく.
https://github.com/CrowCrowzard/tweet

参考文献

python-dotenv

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
189