አቅርቡን ወደሚጀምሩት pip ሂደት ያስተላልፉ
pip ን በተፈለገው Python ኢንተርፕሪተር በኩል ይጥሩ እና --proxy ን እንደ የተለየ subprocess አርጉመንት ያቅርቡ፣ የ pip ውስጣዊ ክፍሎችን ከመግባት ይልቅ።
ያለ ፕሮቪዥኒንግ ስክሪፕት pip ን በፕሮክሲ በኩል ማሄድ ሲፈልግ pip ን እንደ subprocess ይጀምሩ። የ pip ውስጣዊ Python ተግባራት የተደገፈ የመተግበሪያ API አይደሉም።
import subprocess
import sys
subprocess.run([
sys.executable,
'-m', 'pip', 'install',
'--proxy', 'http://proxy.example:8080',
'example-package',
], check=True)
የተፈለገውን ጥቅል እና የፕሮክሲ መጨረሻ ነጥብ ይጠቀሙ። በግልጽ ድርጅት በኩል ለሚፈቀዱ የግልጽ ጥቅል ማውረዶች የHTTP ፕሮክሲ ዝርዝር ለ HTTP ፕሮክሲ አርጉመንት እጩዎችን ያቀርባል። sys.executable ስክሪፕቱን የሚያሄደውን Python ኢንተርፕሪተር ይመርጣል፣ ስለዚህ የሌላ ጭነት pip በአጋጣሚ ከ PATH እንዳይጠራ ያስወግዳል።
እያንዳንዱ አርጉመንት የተለየ የዝርዝር አካል ይይዛል። ሼል አያስፈልግም፣ የፕሮክሲ ዩአርኤልም ተጨማሪ የተካተተ የሼል ጥቅስ አያስፈልገውም። check=True ጭነቱ ካልተሳካ CalledProcessError ያስነሳል፣ ይህም የፕሮቪዥኒንግ የስራ ፍሰት ያንን ውድቀት እንዲያስተናግድ ያስችለዋል።
የማውረድ መንገዱን በዚህ የ pip ጥሪ ወይም በ subprocess አካባቢው ላይ ያዋቅሩ። በወላጅ ፕሮግራሙ ውስጥ በሌላ ቦታ የተዋቀረ የ Requests ክፍለ ጊዜ የ pip የተለየ ሂደትን አያዋቅርም።
ከተጫነ በኋላ የመተግበሪያውን የተለመደ የአካባቢ ዑደት ይቀጥሉ። አስቀድሞ በሚሰራ ኢንተርፕሪተር ውስጥ መጫን የአሁኑ ግቤቶቹ፣ መሸጎጫዎቹ ወይም መንገዶቹ አዲሱን ጥቅል ወዲያውኑ የሚያንጸባርቁ መሆኑን አያረጋግጥም።