我有一个python脚本,它将在覆盆子上24/7运行至少5个月,如果出了什么问题,我将无法访问它来重新启动它。它使用各种库来连接sql数据库、无线RFID阅读器等。
基本上是几十行定义函数,通过usb/serial将覆盆子连接到设备,然后是一个大的while True:
循环。
我想确保如果发生错误,代码将继续运行(或者再试一次,直到没有错误发生),而不会陷入错误。我知道我可以使用try: Except:
but it seems to be not be recommended。
你有什么资源可以让我学习如何使python脚本不受任何影响,或者如何做到这一点?
最佳答案
try
是一种很好的资源。
在这里,我试图调用一个环境变量。如果没有设置,我会尝试设置它。如果我不能设置,我会让用户知道发生了什么,这样他们就不会害怕。
try:
os.environ['R_HOME']
except:
print("""
\u2717 ERROR: The default Jupyter/Conda path for R, `os.environ['R_HOME']` is undefined, cannot print it's path.
This should have been set when running the Docker image like so:
`-e R_HOME=/opt/conda/lib/R`
""")
try:
print("\u0009Attempting to set `os.environ['R_HOME']` manually...")
os.environ['R_HOME'] = '/opt/conda/lib/R'
except:
print("\u0009Failed to set `R_HOME` this must not be a conda managed jupyter environment with both R and Python kernels.")
else:
print("\u0009\u2713 -- 'R_HOME' is now `" + os.environ['R_HOME'] + "`." )
else:
print("\u0009\u2713 -- The path of the Jupyter R enviroment being accessed by `rpy2` is '" + os.environ['R_HOME'] + "'.\n")