ConfigParser DuplicateOptionError a HTTP_PROXY és a http_proxy használatakor
Értse meg, miért létezhet egyszerre a HTTP_PROXY és a http_proxy Linuxon, mégis DuplicateOptionError hibát okoz, ha a ConfigParser alapértelmezéseiként használja őket.
Egy kis- és nagybetűt megkülönböztető környezetben a HTTP_PROXY és a http_proxy két különböző név lehet. A ConfigParser általában kisbetűssé alakítja az opcióneveket, ezért ha mindkettőt az alapértelmezésekbe teszi, azok egyetlen duplikált opcióvá válhatnak.
Ezért a <dict> nevet említő hiba a ConfigParser(defaults=os.environ)-ból származhat, még mielőtt bármilyen proxykapcsolatot megkísérelne.
Ha az alkalmazásnak ebben az elemzőben szándékosan kis- és nagybetűre érzékeny környezetnevekre van szüksége, a betöltésük előtt állítsa be a normalizálási szabályt:
import configparser
import os
settings = configparser.ConfigParser(interpolation=None)
settings.optionxform = str
settings.read_dict({'DEFAULT': dict(os.environ)})Így a két írásmód elkülönül. A keresések és a később beolvasott konfiguráció is ezt a szabályt követi. Az interpoláció kikapcsolása azt is megakadályozza, hogy a környezeti értékekben lévő százalékjelek interpolációs szintaxisként legyenek kezelve.
Ha az alkalmazás kis- és nagybetűtől független konfigurációt igényel, válassza ki kifejezetten a kívánt környezeti bemeneteket, és az ütköző írásmódokat az adott kliens proxy szabályai szerint oldja fel, mielőtt átadná őket az elemzőnek.
A strict=False módosítása elfogadja a duplikátumokat, de nem határozza meg, melyik ütköző proxyértéket használja az alkalmazás. Egy véletlen környezeti írásmód eltávolítása akkor lehet helyénvaló, ha nem Ön irányítja az elemzőt; először állapítsa meg, melyik értékre van szüksége az alsóbb kliensnek.