Để thiết lập và khôi phục lại một biến môi trường trên dòng lệnh của Windows đòi hỏi một cách tiếp cận không may "phần nào bị tra tấn" ...:
SET SAVE=%PYTHONPATH%
SET PYTHONPATH=.
python scripts/doit.py
SET PYTHONPATH=%SAVE%
Bạn có thể sử dụng một tập lệnh Python phụ trợ nhỏ để làm cho nó ít đau đớn hơn, ví dụ
import os
import sys
import subprocess
for i, a in enumerate(sys.argv[1:]):
if '=' not in a: break
name, _, value = a.partition('=')
os.environ[name] = value
sys.exit(subprocess.call(sys.argv[i:]))
được gọi là, ví dụ,
python withenv.py PYTHONPATH=. python scripts/doit.py
(Tôi đã được mã hóa nó để nó làm việc cho bất kỳ subprocess, không chỉ là một kịch bản Python - nếu bạn chỉ quan tâm đến kịch bản Python bạn có thể bỏ qua python thứ hai trong cal và đặt 'python' trong sys.argv[i-1]
trong mã, sau đó sử dụng sys.argv[i-1:]
làm đối số cho subprocess.call).
Nguồn
2010-05-25 01:36:29
Hm. Nhiều hơn một chút so với những gì tôi cần, nhưng cảm ơn! Tôi sẽ thử vào ngày mai. – Santa