在Linux中设置环境variables在python while循环中使用,但循环不停止

我用Python控制树莓派2上的LED。 我希望LED能持续x秒。 当我在Linux中设置一个环境variables。 例如, export t=5 。 LED亮起,但不会熄灭。

如果我只是在python脚本中设置variables,一切正常。

我在Linux中设置一个环境variables,如下所示:

 export t=5 sudo python test.py 

像这样用Python获取它:

  #!/usr/bin/env python import RPi.GPIO as GPIO import time import os GPIO.setmode(GPIO.BOARD) GPIO.setup(11,GPIO.IN, pull_up_down=GPIO.PUD_DOWN) GPIO.setup(12,GPIO.OUT) GPIO.output(12,0) s = 0 t = os.environ.get('t') while s <= t: if (GPIO.input(11) == 1): GPIO.output(12, 1) time.sleep(0.1) s += 0.1 else: GPIO.output(12, 0) GPIO.output(12, 0) 

环境变量的值 – 也就是os.environ的值 – 被存储为字符串。 因此,您需要将t转换为一个数字,以便与s进行比较来执行您想要的操作:

 t = int(os.environ.get('t'))