对没有 main() 函数的整个脚本使用 line_profiler
Using line_profiler for an entire script without a main() function
我刚刚构建了一个 Raspberry Pi 作为基本的测速相机,想对现有代码进行一些调整。我之前为很多项目断断续续地使用过各种语言进行过编程,但并不是一项专门的工作。
我用的代码是这样的(太长了所以没贴出来):
https://github.com/gregtinkers/carspeed.py
我想从使用 line_profiler 开始,尽可能帮助调整现有代码,慢慢地让我进行更改并了解它是如何工作的。
我已尝试转换现有脚本,以便;
- 整个代码都包含在一个 'main()' 函数中,包括
现有功能,
- 将现有函数定义下方的代码移动到新的 'def main():' 函数中,
这些导致我更改了大量现有代码以使其正常工作,但它总是没有,我最终迷路了!
我已经按照各种指南使用 line_profiler 并让它与现有定义的函数一起使用,但我想将其扩展到代码的其余部分。
我是不是错过了一个非常简单的方法?我应该如何处理它?
我无法测试代码,因为我没有 Rasberry Pi,但我会尝试从第 57 行开始(在您现有的函数定义之后)。基本上你是在定义一个 main() 函数,然后在文件作为脚本调用时调用它 (What does if __name__ == "__main__": do?).
def main():
# define some constants
DISTANCE = 76 #<---- enter your distance-to-road value here
...
if (state == WAITING):
...
# if the `q` key is pressed, break from the loop and terminate processing
if key == ord("q"):
return False #<=== note return instead of break
# clear the stream in preparation for the next frame
rawCapture.truncate(0)
#End of main()
if __name__ == '__main__:
main()
# cleanup the camera and close any open windows
cv2.destroyAllWindows()
我刚刚构建了一个 Raspberry Pi 作为基本的测速相机,想对现有代码进行一些调整。我之前为很多项目断断续续地使用过各种语言进行过编程,但并不是一项专门的工作。
我用的代码是这样的(太长了所以没贴出来):
https://github.com/gregtinkers/carspeed.py
我想从使用 line_profiler 开始,尽可能帮助调整现有代码,慢慢地让我进行更改并了解它是如何工作的。
我已尝试转换现有脚本,以便;
- 整个代码都包含在一个 'main()' 函数中,包括 现有功能,
- 将现有函数定义下方的代码移动到新的 'def main():' 函数中,
这些导致我更改了大量现有代码以使其正常工作,但它总是没有,我最终迷路了!
我已经按照各种指南使用 line_profiler 并让它与现有定义的函数一起使用,但我想将其扩展到代码的其余部分。
我是不是错过了一个非常简单的方法?我应该如何处理它?
我无法测试代码,因为我没有 Rasberry Pi,但我会尝试从第 57 行开始(在您现有的函数定义之后)。基本上你是在定义一个 main() 函数,然后在文件作为脚本调用时调用它 (What does if __name__ == "__main__": do?).
def main():
# define some constants
DISTANCE = 76 #<---- enter your distance-to-road value here
...
if (state == WAITING):
...
# if the `q` key is pressed, break from the loop and terminate processing
if key == ord("q"):
return False #<=== note return instead of break
# clear the stream in preparation for the next frame
rawCapture.truncate(0)
#End of main()
if __name__ == '__main__:
main()
# cleanup the camera and close any open windows
cv2.destroyAllWindows()