📌

Pythonで環境変数の取り扱いの自分なりのベストプラクティス

2024/07/20に公開

まえがき

Pythonで環境変数を取り扱うことがよくあるが、自分なりによく使っていてベストプラクティスな方法があるため、残しておく

早速実装方法

TwitterのAPIを活用したときの実装で使用した方法を記載する。

まずは、.envに定数を定義する。

.env
API_KEY=*****
API_KEY_SECRET=*****
ACCESS_TOKEN=*****
ACCESS_TOKEN_SECRET=*****

TwitterAPIに必要な定数を定義して値をセットしておく。

次にconfig.pyを作り、dotenvというライブラリを使い、load_dotenv()を実行して、先ほどの.envに定義した定数を読み込む。

config.py
from dotenv import load_dotenv
import os

load_dotenv()
API_KEY=os.getenv('API_KEY')
API_KEY_SECRET=os.getenv('API_KEY_SECRET')
ACCESS_TOKEN=os.getenv('ACCESS_TOKEN')
ACCESS_TOKEN_SECRET=os.getenv('ACCESS_TOKEN_SECRET')
config.py
from dotenv import load_dotenv
import os

load_dotenv()
API_KEY=os.getenv('API_KEY')
API_KEY_SECRET=os.getenv('API_KEY_SECRET')
ACCESS_TOKEN=os.getenv('ACCESS_TOKEN')
ACCESS_TOKEN_SECRET=os.getenv('ACCESS_TOKEN_SECRET')

使用したい処理で、configを読み込むと、例えばconfig.API_KEYといった形で定数が読み込める。
TwitterAPIでツイートするときのコードは以下となる。

postTweet.py
import config
import tweepy

# configで設定した値を取得する
CONSUMER_KEY = config.API_KEY
CONSUMER_SECRET = config.API_KEY_SECRET
ACCESS_TOKEN = config.ACCESS_TOKEN
ACCESS_SECRET = config.ACCESS_TOKEN_SECRET

# clientオブジェクト作成
client = tweepy.Client(
    consumer_key=CONSUMER_KEY,
    consumer_secret=CONSUMER_SECRET,
    access_token=ACCESS_TOKEN,
    access_token_secret=ACCESS_SECRET
)

# ツイートする
client.create_tweet(text='test')

以上

Discussion