我正在为RaspberryPi编写一个Python3间隔脚本,该脚本应该每小时拍摄一次,然后使用SCP将其上传到我的服务器。
到目前为止,我让Pi每小时进行一次快照,并且一切似乎正常。但是,当我建立SCP连接时出现错误
upload_photo中的文件“ /home/pi/timelapse.py”,第62行 scp.close() UnboundLocalError:分配前已引用本地变量“ scp”
这对我来说毫无意义,因为仅在尝试将SCP变量初始化之前的行中,才在try块内调用scp.close()函数。换句话说,如果在该行之前发生异常,那么我应该已经进入了except-block,因此我不应该进入这一行。正如我所看到的,每当我来到这一行时都必须定义变量“ 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")
如果以前有人遇到此错误并知道如何解决,我将非常感谢您为我的问题提供答案!预先感谢。