Nếu bạn đang nói tuyên truyền môi trường lạc hậu, xin lỗi, bạn không thể. Đó là một vấn đề an ninh. Tuy nhiên, môi trường nguồn trực tiếp từ python chắc chắn là hợp lệ. Nhưng nó ít nhiều là một quy trình thủ công.
import subprocess as sp
SOURCE = 'your_file_path'
proc = sp.Popen(['bash', '-c', 'source {} && env'.format(SOURCE)], stdout=sp.PIPE)
source_env = {tup[0].strip(): tup[1].strip() for tup in map(lambda s: s.strip().split('=', 1), proc.stdout)}
Sau đó, bạn có mọi thứ bạn cần trong source_env
.
Nếu bạn cần phải viết nó trở lại môi trường địa phương của bạn (mà không được khuyến khích, vì source_env
giúp bạn sạch):
import os
for k, v in source_env.items():
os.environ[k] = v
Một chú ý nhỏ cần phải được thanh toán ở đây, là vì tôi gọi là bash
ở đây, bạn nên mong đợi các quy tắc được áp dụng ở đây. Vì vậy, nếu bạn muốn biến của bạn được nhìn thấy, bạn sẽ cần phải xuất chúng.
export VAR1='see me'
VAR2='but not me'
Ý của bạn là gì? Bạn có nghĩa là làm thế nào để bạn * thiết lập * biến môi trường? – jonrsharpe
tôi muốn gọi 'source myFile.sh' từ bên trong kịch bản python và sau đó truy cập vào các biến – lafferc
Vì vậy, bạn chỉ muốn biết cách chạy lệnh từ Python? Bạn đã thử tìm kiếm * đó * chưa? * "tải biến môi trường" * có vẻ ** hoàn toàn ngẫu nhiên ** đối với những gì bạn đang cố gắng đạt được. – jonrsharpe