串行端口访问被拒绝错误

我一直在python编码开发一个库处理串行连接。 恰巧一个python进程并没有以我的程序结束而结束,下一次当我运行我的程序并尝试打开一个串行端口(我总是closures的时候),它返回一个windows错误5,Access被拒绝。

如果我手动检查任务栏并杀死旧的Python进程,我可以连接到COM端口。 我想通过编程来处理这个exception:1.find持有我的串行端口的旧进程,并通过代码杀死它。 在开始我的代码之前进行一些清理操作。

任何人都可以提出一些技巧吗? 顺便说一下,我只能使用Python 2.7

这是所有程序运行的限制。 (我也有这种情况发生在昂贵的商业产品上)

你可能会尝试拔掉串口适配器的插头,但除此之外,最好只是执行适当的异常处理(python非常适合),并确保在退出程序之前始终关闭端口。

最简单的形式是:

try: # all your code... except Exception as e: print("unhandled exception: {}".format(str(e)) finally: # close the serial port... 

即使在没有针对特定异常的处理程序的情况下,也总是保证打开关闭/释放串行端口的代码。