Help us understand the problem. What is going on with this article?

【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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした