Tôi gặp sự cố với việc đặt biến môi trường khi gọi đến subprocess.Popen
. Biến môi trường dường như không được thiết lập. Bất kỳ đề xuất về cách thiết lập đúng các biến môi trường cho một cuộc gọi commandline Python?Python: Xuất các biến môi trường trong subprocess.Popen (..)
Mục tiêu của tôi là để chạy một kịch bản có sử dụng một biến môi trường được xác định từ mã Python tôi:
d = dict(os.environ)
d["TEST_VARIABLE"] = str(1234)
subprocess.Popen('/usr/bin/mybinary', env=d).wait()
nhưng kịch bản phản ứng như thể biến chưa bao giờ được thiết lập
Đây là nỗ lực của tôi để kiểm tra, sử dụng thông dịch viên tương tác của Python:
d = dict(os.environ)
d["TEST_VARIABLE"] = str(1234)
subprocess.Popen(['/bin/echo', '$TEST_VARIABLE'], env=d).wait()
và đầu ra là:
"$TEST_VARIABLE"
0
Tôi nghĩ env=d
nên đặt môi trường cho quy trình con, nhưng có vẻ như không. Bất kỳ đề xuất nào về cách khắc phục vấn đề này?
Vấn đề không phải là môi trường nhưng sự thay thế, như được giải thích bởi câu trả lời được chấp nhận. –
Đúng, nhưng tiêu đề của bài đăng "Xuất", vì vậy điều này rất hữu ích. – gerardw