엔지니어 블로그

[Error] Pyhton Postgresql 연동 에러 (.env) 본문

에러와 마주했을때

[Error] Pyhton Postgresql 연동 에러 (.env)

안기용 2025. 4. 5. 11:13

에러 내용

psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: fe_sendauth: no password supplied

python에서 .env를 사용하여 postgresql에 연결하는 과정에서 위와같은 에러가 나왔다.

from dotenv import load_dotenv


class Database():
    def __init__(self):
        load_dotenv()
        print(os.getenv("DB_HOST")) 

이런 식으로 print를 해봤을때 None이 프린트 되는 것으로 봐서 .env를 찾지 못하고 있는 것 같았다.

해결 방법

간단하게 해결했다. .env의 경로를 잡아주고 실행하면 해결되는 문제였다.

class Database():
    def __init__(self):
        env_path = Path(__file__).resolve().parent.parent / ".env"
        load_dotenv(dotenv_path=env_path)
        self.db = psycopg2.connect(
                host=os.environ.get('DB_HOST'),
                dbname=os.environ.get('DB_NAME'),
                user=os.environ.get('DB_USER'),
                password=os.environ.get('DB_PASSWORD'),
                port=os.environ.get('DB_PORT')
            )