ขึ้นอยู่กับว่าปัญหาคืออะไร ถ้าเป็นการโคลนและแก้ไขสภาพแวดล้อมวิธีหนึ่งก็คือ:
subprocess.Popen(my_command, env=dict(os.environ, PATH="path"))
แต่นั่นค่อนข้างขึ้นอยู่กับว่าตัวแปรที่ถูกแทนที่นั้นเป็นตัวบ่งชี้ python ที่ถูกต้องซึ่งส่วนใหญ่มักเป็น (บ่อยแค่ไหนที่คุณเรียกใช้ชื่อตัวแปรสภาพแวดล้อมที่ไม่ใช่ตัวอักษรและตัวเลข + ขีดล่างหรือตัวแปรที่ขึ้นต้นด้วยตัวเลข)
มิฉะนั้นคุณจะสามารถเขียนสิ่งที่ชอบ:
subprocess.Popen(my_command, env=dict(os.environ,
**{"Not valid python name":"value"}))
ในกรณีที่แปลกมาก (คุณใช้รหัสควบคุมหรืออักขระที่ไม่ใช่ ASCII บ่อยครั้งในชื่อตัวแปรสภาพแวดล้อมหรือไม่) ว่าคีย์ของสภาพแวดล้อมคือbytes
สิ่งที่คุณไม่สามารถทำได้ (ใน python3) แม้แต่ใช้โครงสร้างนั้น
ในขณะที่คุณสามารถดูเทคนิคต่าง ๆ (โดยเฉพาะอย่างยิ่งคนแรก) ที่ใช้ประโยชน์ที่นี่ในคีย์ของสภาพแวดล้อมตามปกติคือตัวบ่งชี้หลามที่ถูกต้องและยังเป็นที่รู้จักล่วงหน้า (ในเวลาการเข้ารหัส) แนวทางที่สองมีปัญหา ในกรณีที่ที่ไม่ได้เป็นกรณีที่คุณอาจจะมองหาวิธีการอื่น
os.pathsep
แทน ":" สำหรับเส้นทางที่ทำงานข้ามแพลตฟอร์ม ดูstackoverflow.com/questions/1499019/…