Kimuksung
Kimuksung 안녕하세요. 분산처리에 관심이 많은 생각하는 주니어 Data Enginner입니다.

Python Config 파일 설정하기

Python Config 파일 설정하기

상황에 따라 Config 파일을 별도로 만들어두어 관리하는 것이 편리하다.

1. Built-in

  • 별도의 Python file을 생성하여 관리
  • 보안적인 이슈가 존재
1
2
3
4
5
# config.py
AWS_CONFIG = {
	'aws_key_id': 'aws_access_id',
	'aws_key': 'aws_access_key'
}
1
2
3
# main.py
import config
print( config.AWS_CONFIG['aws_key_id'] )
2. 외부 파일을 통한 설정

  • configparser Library를 활용
  • ini, json을 활용하여 설정

    1
    2
    3
    4
    
      ; config.ini
      [AWS_CONFIG]
      aws_key_id = aws_access_id
      aws_key = aws_access_key
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
      # main_ini.py
      import configparser
        
      config = configparser.ConfigParser()
      config.read('config.ini')
        
      aws_access_id = config['AWS_CONFIG']['aws_key_id']
      aws_access_key = config['AWS_CONFIG']['aws_key']
        
      print( aws_access_id, aws_access_key)
    
    1
    2
    3
    4
    5
    6
    
      {
          "AWS_CONFIG": {
            "aws_key_id": "aws_access_id",
            "aws_key": "aws_access_key"
        }
      }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
      # main_json.py
      import json
        
      with open('config.json', 'r') as f:
          config = json.load(f)
        
      aws_access_id = config['AWS_CONFIG']['aws_key_id']
      aws_access_key = config['AWS_CONFIG']['aws_key']
        
      print( aws_access_id, aws_access_key)
    
3. 동적 로딩

  • 1번과 2번의 장점을 각각 살려두어 설정 가능
  • 원하는 곳에 별도의 파일로 구성 가능하여 다른 Git 설정
1
2
3
4
5
# /bin/bash/config.py
AWS_CONFIG = {
	'aws_key_id': 'aws_access_id',
	'aws_key': 'aws_access_key'
}
1
2
3
4
5
6
7
# main.py
import sys
import config

sys.path.append('/bin/bash')

print( config.AWS_CONFIG['aws_key_id'] )