HTTP_PROXY болон http_proxy-той ConfigParser DuplicateOptionError
Linux орчинд HTTP_PROXY болон http_proxy зэрэг оршиж болох ч ConfigParser-ийн өгөгдмөл утга болгон ашиглахад DuplicateOptionError үүсдэг шалтгааныг ойлгоорой.
Том, жижиг үсгийг ялгадаг орчинд HTTP_PROXY болон http_proxy өөр өөр нэр байж болно. ConfigParser ихэвчлэн сонголтын нэрийг жижиг үсэг болгодог тул хоёуланг нь өгөгдмөл утгад өгөх нь тэдгээрийг нэг давхардсан сонголт болгож болно.
Тиймээс <dict> гэж дурдсан алдаа нь прокси холболт хийхийг оролдохоос өмнө ConfigParser(defaults=os.environ)-аас үүсч болно.
Хэрэв программд энэ задлагчид том жижиг үсэг ялгадаг орчны нэрс зориуд хэрэгтэй бол ачаалахаас өмнө хэвийн болгох бодлогыг тогтооно уу:
import configparser
import os
settings = configparser.ConfigParser(interpolation=None)
settings.optionxform = str
settings.read_dict({'DEFAULT': dict(os.environ)})Ингэснээр хоёр бичиглэл тусдаа үлдэнэ. Хайлт болон дараа уншигдах аливаа тохиргоо ч энэ бодлогыг дагана. Интерполяцийг унтраах нь орчны утга дахь хувийн тэмдгийг интерполяцийн синтакс гэж үзэхээс сэргийлнэ.
Хэрэв программд том жижиг үсгээс хамааралгүй тохиргоо хэрэгтэй бол хүссэн орчны орцуудыг тодорхой сонгож, задлагчид өгөхөөс өмнө зөрчилтэй бичиглэлүүдийг тухайн клиентийн прокси дүрмийн дагуу шийдвэрлээрэй.
strict=False-г өөрчлөх нь давхардлыг хүлээн авдаг ч программ аль зөрчилтэй прокси утгыг ашиглах ёстойг тодорхойлдоггүй. Задлагчийг та хянадаггүй бол санамсаргүй үүссэн орчны бичиглэлийг устгах нь тохиромжтой байж болно; эхлээд доод клиентэд ямар утга хэрэгтэйг тодорхойлоорой.