ConfigParser DuplicateOptionError ກັບ HTTP_PROXY ແລະ http_proxy
ເຂົ້າໃຈວ່າເປັນຫຍັງ HTTP_PROXY ແລະ http_proxy ຈຶ່ງຢູ່ຮ່ວມກັນໄດ້ໃນ Linux ແຕ່ຍັງເຮັດໃຫ້ເກີດ DuplicateOptionError ເມື່ອໃຊ້ເປັນຄ່າເລີ່ມຕົ້ນຂອງ ConfigParser.
ໃນສະພາບແວດລ້ອມທີ່ແຍກຕົວອັກສອນນ້ອຍ-ໃຫຍ່ 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 ຍອມຮັບການຊ້ຳໄດ້ ແຕ່ບໍ່ໄດ້ກຳນົດວ່າແອັບຯຄວນໃຊ້ຄ່າພຣັອກຊີໃດທີ່ຂັດກັນ. ການລຶບການສະກົດສະພາບແວດລ້ອມທີ່ເກີດຂຶ້ນໂດຍບໍ່ໄດ້ຕັ້ງໃຈອາດເໝາະສົມເມື່ອທ່ານບໍ່ໄດ້ຄວບຄຸມຕົວແຍກ; ກຳນົດກ່ອນວ່າລູກຄ້າປາຍທາງຕ້ອງການຄ່າໃດ.