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

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

More than 3 years have passed since last update.

概要

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というファイル名で記入する.
また,GitHubでcloneしたときに.envのテンプレートを知るために,
.env.sampleというものを用意しておくと良い.

.env.sample
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.py

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
ユーザーは見つかりませんでした