HTTP_PROXY ve http_proxy ile ConfigParser DuplicateOptionError
Linux ortamında HTTP_PROXY ile http_proxy'nin birlikte bulunabildiğini, ancak ConfigParser varsayılanları olarak kullanıldığında DuplicateOptionError'a yol açtığını anlayın.
Büyük-küçük harf ayrımı yapan bir ortamda HTTP_PROXY ile http_proxy farklı adlar olabilir. ConfigParser seçenek adlarını genellikle küçük harfe çevirir; bu yüzden ikisini birden varsayılanlara vermek onları tek bir yinelenen seçenek hâline getirebilir.
Bu nedenle <dict> adını anan bir hata, herhangi bir proxy bağlantısı denenmeden önce ConfigParser(defaults=os.environ) kaynağından gelebilir.
Uygulama bu ayrıştırıcıda büyük-küçük harfe duyarlı ortam adlarına bilerek ihtiyaç duyuyorsa, bunlar yüklenmeden önce normalleştirme ilkesini belirleyin:
import configparser
import os
settings = configparser.ConfigParser(interpolation=None)
settings.optionxform = str
settings.read_dict({'DEFAULT': dict(os.environ)})Böylece iki yazım ayrı kalır. Aramalar ve sonradan okunan her yapılandırma da artık bu ilkeye uyar. Enterpolasyonun kapatılması, ortam değerlerindeki yüzde işaretlerinin enterpolasyon sözdizimi olarak ele alınmasını da engeller.
Uygulama büyük-küçük harf duyarsız bir yapılandırma gerektiriyorsa, amaçlanan ortam girdilerini açıkça seçin ve ayrıştırıcıya vermeden önce çelişen yazımları o istemcinin proxy kurallarına göre çözün.
strict=False değiştirmek yinelenenleri kabul eder, ancak uygulamanın hangi çelişen proxy değerini kullanması gerektiğini tanımlamaz. Ayrıştırıcıyı siz denetlemiyorsanız, yanlışlıkla eklenmiş bir ortam yazımını kaldırmak uygun olabilir; önce alt akıştaki istemcinin hangi değere ihtiyaç duyduğunu belirleyin.