ការហៅខាងក្រោមបង្កើតដំណើរការ shell ពីរដាច់ដោយឡែក៖

os.system('unset http_proxy')
os.system('curl https://example.com/')

shell ទីមួយដកអថេរមួយចេញពីបរិស្ថានរបស់វាផ្ទាល់ ហើយចាកចេញ។ ដំណើរការ Python នៅតែមានតម្លៃដើម។ shell ទីពីរទទួលមរតកវាម្តងទៀត។

ផ្តល់ឱ្យកូននូវបរិស្ថានដែលអ្នកបានបម្រុងទុក

នៅពេលដែលមានតែពាក្យបញ្ជាមួយត្រូវដំណើរការដោយគ្មានអថេរ proxy ដែលទទួលមរតក សូមចម្លងបរិស្ថានរបស់ Python ហើយបញ្ជូនច្បាប់ចម្លងទៅកូន៖

import os
import subprocess

env = os.environ.copy()
for name in ('http_proxy', 'https_proxy', 'all_proxy',
             'HTTP_PROXY', 'HTTPS_PROXY', 'ALL_PROXY'):
    env.pop(name, None)
subprocess.run(['curl', '--proxy', '', 'https://example.com/'],
               env=env, check=True)

ការកំណត់ proxy ទទេច្បាស់លាស់របស់ curl ក៏ជំនួសការជ្រើសរើស proxy ពីការកំណត់រចនាសម្ព័ន្ធផ្ទាល់របស់ curl ផងដែរ។ ច្បាប់ចម្លងបរិស្ថានរក្សាតម្លៃផ្សេងទៀតដែលពាក្យបញ្ជាអាចត្រូវការ។ ការបញ្ជូនបរិស្ថានទទេជំនួសវិញអាចដកផ្លូវស្វែងរកឯកសារដែលអាចដំណើរការ និងការកំណត់រចនាសម្ព័ន្ធកម្មវិធីដែលមិនពាក់ព័ន្ធ។

សម្រាប់ប្រតិបត្តិការបន្ទាប់នៅក្នុងដំណើរការ Python ខ្លួនវា សូមផ្លាស់ប្តូរ os.environ ដោយចេតនា។ វាប៉ះពាល់ដល់អ្វីដែលកូនដែលទើបបង្កើតទទួលមរតក។ វាមិនសរសេរជំនួស បរិស្ថានរបស់ស្ថានីយមេ ហើយមិនចាំបាច់កំណត់រចនាសម្ព័ន្ធឡើងវិញនូវអតិថិជន HTTP ដែលបានចាប់យកការកំណត់របស់ពួកគេរួចហើយនោះទេ។

API subprocess រៀបរាប់អំពីអាគុយម៉ង់ env ហើយ os.environ ពិពណ៌នាអំពីបរិស្ថានដំណើរការរបស់ Python។ វិសាលភាពទាំងនេះគឺជាហេតុផលដែលពាក្យបញ្ជា shell អាចរាយការណ៍ពីភាពជោគជ័យ ខណៈពេលដែលសំណើបន្ទាប់នៅតែប្រើ proxy ចាស់។

ចុងក្រោយ សូមពិនិត្យអតិថិជនដែលអ្នកពិតជាកំពុងដំណើរការ។ អថេរបរិស្ថានគឺជាការបញ្ចូលកំណត់រចនាសម្ព័ន្ធមួយ។ ជម្រើស proxy ច្បាស់លាស់ ឬការកំណត់រចនាសម្ព័ន្ធផ្ទាល់របស់កម្មវិធីអាចបន្តជ្រើសរើស proxy បន្ទាប់ពីអថេរទាំងនោះបាត់។

អត្ថបទពាក់ព័ន្ធ