{"id":304,"library":"python-dotenv","title":"python-dotenv","description":"python-dotenv is a Python library that reads key-value pairs from a .env file and sets them as environment variables. The current version is 1.2.2, released in March 2026. The library is actively maintained with regular updates.","status":"active","version":"1.2.2","language":"python","source_language":"en","source_url":"https://github.com/theskumar/python-dotenv","tags":["environment variables","configuration management","python"],"install":[{"cmd":"pip install python-dotenv","lang":"bash","label":"Install python-dotenv"}],"dependencies":[],"imports":[{"note":"The correct import is from dotenv import load_dotenv; importing dotenv directly will not work.","wrong":"import dotenv","symbol":"load_dotenv","correct":"from dotenv import load_dotenv"}],"quickstart":{"code":"from dotenv import load_dotenv\nimport os\n\n# Load environment variables from .env file\nload_dotenv()\n\n# Access environment variables\nSECRET_KEY = os.environ.get('SECRET_KEY', '')\nDATABASE_PASSWORD = os.environ.get('DATABASE_PASSWORD', '')\n\nprint(f'SECRET_KEY: {SECRET_KEY}')\nprint(f'DATABASE_PASSWORD: {DATABASE_PASSWORD}')","lang":"python","description":"This example demonstrates how to load environment variables from a .env file and access them using os.environ."},"warnings":[{"fix":"Upgrade your Python environment to version 3.10 or higher.","message":"Dropped support for Python 3.7; minimum required version is now Python 3.10.","severity":"breaking","affected_versions":"1.0.0 and later"},{"fix":"Use from dotenv import load_dotenv to import the function correctly.","message":"Importing dotenv directly instead of from dotenv import load_dotenv will result in ImportError.","severity":"gotcha","affected_versions":"All versions"},{"fix":"Pass override=True to load_dotenv() if you want to override existing environment variables.","message":"The load_dotenv function does not override existing environment variables by default.","severity":"gotcha","affected_versions":"All versions"},{"fix":"Ensure that any flags intended for dotenv run are placed before the command to avoid unintended behavior.","message":"The dotenv run command now forwards flags directly to the specified command.","severity":"gotcha","affected_versions":"1.2.2 and later"}],"env_vars":null,"last_verified":"2026-05-12T12:57:49.454Z","next_check":"2026-06-26T00:00:00.000Z","problems":[],"ecosystem":"pypi","meta_description":null,"install_score":100,"install_tag":"verified","quickstart_score":0,"quickstart_tag":"stale","pypi_latest":null,"install_checks":{"last_tested":"2026-05-12","tag":"verified","tag_description":"installs cleanly on critical runtimes, fast import, recently tested","results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.04,"mem_mb":2.3,"disk_size":"17.9M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.03,"mem_mb":2.3,"disk_size":"18M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.09,"mem_mb":2.6,"disk_size":"19.8M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.07,"mem_mb":2.6,"disk_size":"20M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.07,"mem_mb":2.4,"disk_size":"11.6M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.07,"mem_mb":2.4,"disk_size":"12M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.06,"mem_mb":2.4,"disk_size":"11.3M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.06,"mem_mb":2.2,"disk_size":"12M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.04,"mem_mb":2.2,"disk_size":"17.4M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.04,"mem_mb":2.2,"disk_size":"18M"}]},"quickstart_checks":{"last_tested":"2026-04-23","tag":"stale","tag_description":"widespread failures or data too old to trust","results":[{"runtime":"python:3.10-alpine","exit_code":1},{"runtime":"python:3.10-slim","exit_code":1},{"runtime":"python:3.11-alpine","exit_code":1},{"runtime":"python:3.11-slim","exit_code":1},{"runtime":"python:3.12-alpine","exit_code":1},{"runtime":"python:3.12-slim","exit_code":1},{"runtime":"python:3.13-alpine","exit_code":1},{"runtime":"python:3.13-slim","exit_code":1},{"runtime":"python:3.9-alpine","exit_code":1},{"runtime":"python:3.9-slim","exit_code":1}]}}