我正在为我的RaspberryPi编写一个Python3 timelapse脚本,该脚本应该每小时拍摄一张照片,然后使用SCP将其上传到我的服务器
到目前为止,我让Pi每小时拍摄一次快照,一切似乎都正常。然而,当我建立SCP连接时,我得到了错误
File "/home/pi/timelapse.py", line 62, in upload_photo scp.close() UnboundLocalError: local variable 'scp' referenced before assignment
这对我来说毫无意义,因为scp.close()函数只在try块内调用,在scp变量初始化之后,只在之前的行中调用。换句话说,如果在该行之前发生异常,我将已经进入exception块,并且我不应该来到这一行。在我看来,每当我来到这一行时,都必须定义变量“SCP”,但我怀疑情况可能并非如此
我用来上传照片的代码如下:
def upload_photo(filename):
try:
uploaded = False
ssh = SSHClient()
ssh.load_system_host_keys()
ssh.connect('my.server', username="myUsername" password="myPass")
scp = SCPClient(ssh.get_transport())
scp.put(filename, remote_path="~/snaps")
uploaded = True
scp.close()
ssh.close()
except Exception as err:
send_error_mail(err, filename)
finally:
if uploaded:
os.system("rm " + filename)
else:
os.system("mv " + filename + " picturecache")
如果有人以前遇到过这个错误,并且知道如何解决它,我将非常感谢您回答我的问题!提前谢谢
目前没有回答
相关问题 更多 >
编程相关推荐