มีวิธีแก้ไขPATH
ตัวแปรสภาพแวดล้อมในแพลตฟอร์มแบบอิสระโดยใช้ python หรือไม่?
สิ่งที่คล้ายกับos.path.join()
?
มีวิธีแก้ไขPATH
ตัวแปรสภาพแวดล้อมในแพลตฟอร์มแบบอิสระโดยใช้ python หรือไม่?
สิ่งที่คล้ายกับos.path.join()
?
คำตอบ:
คุณควรจะแก้ไขos.environ
ได้
เนื่องจากos.pathsep
เป็นอักขระในการแยกเส้นทางต่างๆคุณควรใช้สิ่งนี้เพื่อต่อท้ายเส้นทางใหม่:
os.environ["PATH"] += os.pathsep + path
หรือหากมีหลายเส้นทางที่จะเพิ่มในรายการ:
os.environ["PATH"] += os.pathsep + os.pathsep.join(pathlist)
ดังที่คุณได้กล่าวมาแล้วos.path.join
ยังสามารถใช้สำหรับแต่ละเส้นทางที่คุณต้องต่อท้ายในกรณีที่คุณต้องสร้างจากส่วนต่างๆที่แยกจากกัน
os.pathsep
ฉันพูดถึง (เฉพาะ PATH) หรือเปล่า?
os.path.sep != os.pathsep
ว่า
โปรดทราบว่าos.environ
จริงๆแล้วไม่ใช่พจนานุกรม มันเป็นพจนานุกรมพิเศษเช่นวัตถุที่จริงชุดตัวแปรสภาพแวดล้อมในกระบวนการปัจจุบันใช้setenv
>>> os.environ.__class__
<class os._Environ at 0x100472050>
>>> import os
>>> os.environ["HELLO"] = "WORLD"
>>> os.getenv("HELLO")
'WORLD'
ซึ่งหมายความว่าPATH
(และตัวแปรสภาพแวดล้อมอื่น ๆ ) จะมองเห็นได้สำหรับโค้ด C ที่รันในกระบวนการเดียวกัน
(เนื่องจากความคิดเห็นไม่สามารถมีการจัดรูปแบบได้ฉันจึงต้องใส่คำตอบนี้ แต่ฉันรู้สึกว่ามันเป็นประเด็นสำคัญที่ต้องทำนี่เป็นความคิดเห็นเกี่ยวกับความคิดเห็นเกี่ยวกับการไม่มีการเทียบเท่ากับ 'การส่งออก' )
ข้อควรระวังในการแก้ไขตัวแปรสภาพแวดล้อมใน Python คือไม่มีคำสั่งเชลล์ "export" ที่เทียบเท่า ไม่มีวิธีการฉีดการเปลี่ยนแปลงในกระบวนการปัจจุบันมีเพียงกระบวนการลูกเท่านั้น
os.system
, os.popen
หรือsubprocess.Popen
แล้วควรจะใช้จากโปรแกรม Python ที่จะเปิดตัวกระบวนการอื่น ๆ ไม่งั้นก็ไม่มีจุดหมาย
export
ทำให้ตัวแปรถูกคัดลอกลงในสภาพแวดล้อมของกระบวนการลูกทั้งหมดแต่ไม่มีผลกระทบต่อกระบวนการหลัก