Поскольку мои рабочие станции не имеют доступа к Интернету, а установка пакетов - беспорядок, я в итоге пришел к такому решению:
import os
os.system('tasklist > location/tasks.txt')
with open('location/tasks.txt', 'r') as pslist:
for line in pslist:
if line.startswith('python.exe'):
if line.split()[1] != str(os.getpid()):
os.system(f'TASKKILL /F /PID {line.split()[1]}')
break
os.remove('location/tasks.txt')
Он выводит вывод команды tasklist в файли затем проверяет файл, чтобы увидеть, есть ли запущенный процесс Python с другим PID, отличным от его собственного.
edit: выяснил, что я могу сделать это с popen
, так что он короче и нет файлов:
import os
for line in os.popen('tasklist').readlines():
if line.startswith('python.exe'):
if line.split()[1] != str(os.getpid()):
os.system(f'taskkill /F /PID {line.split()[1]}')
break