首页 > 解决方案 > 如何禁用 python 脚本的多个实例?

问题描述

我制作了一个 python 程序,我想禁用并行启动它的选项。

我在网上搜索,发现我需要用socket和端口来做,但我没有找到任何如何做的例子(我知道步骤,但我需要在google上搜索每一步,我不是这样确定如何开始)。
我还发现可能有一些库可以做到这一点,但仅限于特定的操作系统。我的脚本只针对 Windows 10,所以如果有一个库,我需要找到一个对 Windows 执行此操作的库。
你知道这样的库吗,或者你能给出一个更详细的例子来说明如何制作这个套接字监听器吗?
我在网上找到的结果实际上只是 python 2.7 中的一个问题(我使用的是 3.8):https ://stackoverflow.com/a/24381532/13786031

标签: pythonpython-3.x

解决方案


如果您将自己绑定到特定端口,您将为您的程序实例保留此端口,并且在尝试绑定到此端口时将阻止新实例。

import socket               # Import socket module

s = socket.socket()         # Create a socket object
host = socket.gethostname() # Get local machine name
port = 12345                # Reserve a port for your service.
s.bind((host, port))        # Bind to the port

推荐阅读