time.sleep(1) 错误 -- python 在 Raspberry Pi
time.sleep(1) error -- python on Raspberry Pi
我有:
time.sleep(1)
在我的 python 中两次。
但是第二次脚本崩溃说:
Traceback (most recent call last):
File "ON-BOOT.py", line 36, in <module>
time.sleep(1)
AttributeError: 'int' object has no attribute 'sleep'
不知道有什么问题。
这是完整的脚本(它在我的 Raspberry Pi 上启动时运行)
#!/usr/bin/python3
import socket
import os
import smtplib
import time
import RPi.GPIO as gpio
print "ON-BOOT running..."
time.sleep(1)
gpio.setmode(gpio.BOARD)
gpio.setup(7,gpio.IN)
bi = 0
time = 0
selectAction = "false"
os.system("omxplayer -o hdmi /var/www/siren1.mp3")
gw = os.popen("ip -4 route show default").read().split()
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect((gw[2], 0))
ipaddr = s.getsockname()[0]
gateway = gw[2]
host = socket.gethostname()
print ("IP:", ipaddr, " GW:", gateway, " Host:", host)
fromaddr = 'billyg270@example.com'
toaddrs = 'billyg270@example.com'
msg = "ROBO pie active on port: " + ipaddr
username = 'billyg270@example.com'
password = '**MY PASSWORD**'
server = smtplib.SMTP('smtp.gmail.com:587')
server.ehlo()
server.starttls()
server.login(username,password)
server.sendmail(fromaddr, toaddrs, msg)
server.quit()
os.system ("espeak -ven+f3 -k5 -s150 'ROBO pie active on port " + ipaddr + "'")
print msg
time.sleep(1)
os.system ("espeak -ven+f3 -k5 -s150 'You now have 5 seconds to press the button if you wish to launch, test1'")
selectAction = "true"
while selectAction == "true":
print "time: " + str(time)
print "selectAction: " + selectAction
time.sleep(0.1)
time += 1
print "bi: " + str(bi)
if(time < 50):
if (gpio.input(buttonPin)):
#button pressed
bi += 1
if(time > 50):
os.system ("espeak -ven+f3 -k5 -s150 'You can no longer press the button'")
selectAction = "false"
if(bi > 0):
os.system ("espeak -ven+f3 -k5 -s150 'You have selected to launch, test1'")
os.system("cd /var/www")
gpio.cleanup()
os.system("sudo python test1.py")
gpio.cleanup()
第 12 行覆盖时间模块:
time = 0
当你下次调用 time.sleep()
时,你实际上调用了 1.sleep(1)
或类似的东西。
您有几个重构选项:
from time import sleep
import time as time_module
(我觉得不太漂亮)
- 或者重命名你的变量,这是我认为最好的选择。
我有:
time.sleep(1)
在我的 python 中两次。 但是第二次脚本崩溃说:
Traceback (most recent call last):
File "ON-BOOT.py", line 36, in <module>
time.sleep(1)
AttributeError: 'int' object has no attribute 'sleep'
不知道有什么问题。
这是完整的脚本(它在我的 Raspberry Pi 上启动时运行)
#!/usr/bin/python3
import socket
import os
import smtplib
import time
import RPi.GPIO as gpio
print "ON-BOOT running..."
time.sleep(1)
gpio.setmode(gpio.BOARD)
gpio.setup(7,gpio.IN)
bi = 0
time = 0
selectAction = "false"
os.system("omxplayer -o hdmi /var/www/siren1.mp3")
gw = os.popen("ip -4 route show default").read().split()
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect((gw[2], 0))
ipaddr = s.getsockname()[0]
gateway = gw[2]
host = socket.gethostname()
print ("IP:", ipaddr, " GW:", gateway, " Host:", host)
fromaddr = 'billyg270@example.com'
toaddrs = 'billyg270@example.com'
msg = "ROBO pie active on port: " + ipaddr
username = 'billyg270@example.com'
password = '**MY PASSWORD**'
server = smtplib.SMTP('smtp.gmail.com:587')
server.ehlo()
server.starttls()
server.login(username,password)
server.sendmail(fromaddr, toaddrs, msg)
server.quit()
os.system ("espeak -ven+f3 -k5 -s150 'ROBO pie active on port " + ipaddr + "'")
print msg
time.sleep(1)
os.system ("espeak -ven+f3 -k5 -s150 'You now have 5 seconds to press the button if you wish to launch, test1'")
selectAction = "true"
while selectAction == "true":
print "time: " + str(time)
print "selectAction: " + selectAction
time.sleep(0.1)
time += 1
print "bi: " + str(bi)
if(time < 50):
if (gpio.input(buttonPin)):
#button pressed
bi += 1
if(time > 50):
os.system ("espeak -ven+f3 -k5 -s150 'You can no longer press the button'")
selectAction = "false"
if(bi > 0):
os.system ("espeak -ven+f3 -k5 -s150 'You have selected to launch, test1'")
os.system("cd /var/www")
gpio.cleanup()
os.system("sudo python test1.py")
gpio.cleanup()
第 12 行覆盖时间模块:
time = 0
当你下次调用 time.sleep()
时,你实际上调用了 1.sleep(1)
或类似的东西。
您有几个重构选项:
from time import sleep
import time as time_module
(我觉得不太漂亮)- 或者重命名你的变量,这是我认为最好的选择。