ConfigParser DuplicateOptionError su HTTP_PROXY ir http_proxy
Supraskite, kodėl HTTP_PROXY ir http_proxy gali egzistuoti kartu Linux aplinkoje, bet vis tiek sukelia DuplicateOptionError, kai naudojami kaip ConfigParser numatytosios reikšmės.
Aplinkoje, kuri skiria didžiąsias ir mažąsias raides, HTTP_PROXY ir http_proxy gali būti skirtingi pavadinimai. ConfigParser paprastai paverčia parinkčių pavadinimus mažosiomis raidėmis, todėl abu įrašius į numatytąsias reikšmes jie gali tapti viena pasikartojančia parinktimi.
Todėl klaida, minima <dict>, gali kilti iš ConfigParser(defaults=os.environ) dar prieš bandant bet kokį prisijungimą per tarpinį serverį.
Jei programai šiame analizatoriuje sąmoningai reikia nuo raidžių dydžio priklausančių aplinkos pavadinimų, nustatykite normalizavimo taisyklę prieš juos įkeliant:
import configparser
import os
settings = configparser.ConfigParser(interpolation=None)
settings.optionxform = str
settings.read_dict({'DEFAULT': dict(os.environ)})Taip abu užrašymai lieka atskirti. Paieškos ir bet kokia vėliau nuskaitoma konfigūracija dabar taip pat vadovaujasi šia taisykle. Išjungus interpoliaciją taip pat neleidžiama procento ženklų aplinkos reikšmėse traktuoti kaip interpoliacijos sintaksės.
Jei programai reikia nuo raidžių dydžio nepriklausančios konfigūracijos, aiškiai pasirinkite norimus aplinkos įvestis ir išspręskite prieštaringus užrašymus pagal to kliento tarpinio serverio taisykles prieš perduodami juos analizatoriui.
Pakeitus strict=False, pasikartojimai priimami, bet nenustatoma, kurią prieštaringą tarpinio serverio reikšmę programa turėtų naudoti. Pašalinti vieną atsitiktinį aplinkos užrašymą gali būti tikslinga, kai analizatoriaus nekontroliuojate; pirmiausia nustatykite, kokios reikšmės reikia tolesniam klientui.