ConfigParser DuplicateOptionError með HTTP_PROXY og http_proxy
Skiljið hvers vegna HTTP_PROXY og http_proxy geta verið til samtímis í Linux-umhverfi en valda samt DuplicateOptionError þegar þau eru notuð sem sjálfgefnar stillingar ConfigParser.
Í umhverfi sem greinir á milli hástafna og lágstafna geta HTTP_PROXY og http_proxy verið mismunandi heiti. ConfigParser breytir venjulega heitum valmöguleika í lágstafi, svo að setja bæði í sjálfgefnar stillingar getur gert þau að einum tvíteknum valmöguleika.
Villa sem nefnir <dict> getur því stafað af ConfigParser(defaults=os.environ), áður en nokkur tenging við milliþjón er reynd.
Ef forritið þarf viljandi umhverfisheiti sem eru háð stafstærð í þessum þáttara, stilltu normaliseringarstefnuna áður en þau eru hlaðin:
import configparser
import os
settings = configparser.ConfigParser(interpolation=None)
settings.optionxform = str
settings.read_dict({'DEFAULT': dict(os.environ)})Þannig haldast báðar stafsetningarnar aðskildar. Uppflettingar og hvers kyns stillingar sem lesnar eru síðar fylgja nú líka þeirri stefnu. Slökkt á innskoti kemur einnig í veg fyrir að prósentumerki í umhverfisgildum séu meðhöndluð sem innskotssetning.
Ef forritið krefst stillinga sem eru óháðar stafstærð skaltu velja ætluð umhverfisinntök sérstaklega og leysa misvísandi stafsetningar samkvæmt milliþjónsreglum þess viðskiptavinar áður en þau eru afhent þáttaranum.
Breyting á strict=False samþykkir tvítekningar en ákvarðar ekki hvaða misvísandi milliþjónsgildi forritið eigi að nota. Að fjarlægja eina óviljandi umhverfisstafsetningu getur verið viðeigandi þegar þú stjórnar ekki þáttaranum; finndu fyrst hvaða gildi viðskiptavinurinn neðar þarf.