Quando hai bisogno di valori diversi a seconda dell'ambiente, dovresti probabilmente cercare un file di configurazione che contenga le variabili d'ambiente di cui hai bisogno. Il codice che esegui non dovrebbe mai sapere in quale ambiente viene eseguito, perché ciò significherebbe che non puoi testare il tuo codice di produzione (che è una pessima idea).
Questo è un consiglio generale e non particolarmente legato a Python, ma questo è un esempio di come lo si dovrebbe fare in quel linguaggio (non conosco davvero i bucket S3, userò semplicemente i file JSON per scopi di chiarezza) :
Code.py:
import json
with open('mycfg.json') as f:
env_vars = json.loads(f.read())
do_something(env_vars)
mycfg_dev.json:
{
"path": "/tmp"
"ip": "127.0.0.1"
"login": "root"
"password": "root"
}
mycfg_prod.json:
{
"path": "/var/www"
"ip": "192.168.1.44"
"login": "myapp"
"password": "aunriseqvoa"
}
Dovresti eseguire la versione dei due file nel tuo repository (se è privato, altrimenti non eseguire la versione prod, per evitare un problema molto serio e comune problema di sicurezza ) e rinominare semplicemente quello necessario quando si esegue il modulo. Il file cfg potrebbe forse reindirizzare se stesso ad un altro contenitore di dati se ti porta qualche vantaggio su un file normale.
In generale questo è il modo in cui gestisco le variabili di ambiente, ma forse ho capito qualcosa di sbagliato sui tuoi requisiti.