Мне интересно, есть ли способ изменить имя скрипта, чтобы он не назывался "python.exe" в списке задач. Причина, по которой я спрашиваю, состоит в том, что я пытаюсь создать командный файл, который запускается на языке Python. Я хочу, чтобы командный файл проверил, запущен ли скрипт. если скрипт уже запущен, то пакетный файл ничего не сделает. Благодарность

0
Richard 2 Июн 2010 в 17:42

5 ответов

Лучший ответ

Возможно, вы сможете попробовать это: http://code.google.com/p/procname/

1
Peter Tillemans 2 Июн 2010 в 13:50

Эта библиотека не работает в Windows и не должна использоваться в рабочем коде. Манипулирование массивом argv - довольно грязный хак.

Как правило, я бы не пытался идентифицировать процессы путем сканирования таблицы процессов. Это ненадежно, так как имена процессов не обязательно будут уникальными. Вместо этого я бы создал простой сервер на localhost внутри скрипта Python. Если сценарий запущен, он может попытаться подключиться к серверу и выйти, если сервер уже запущен. Этот подход впоследствии может быть расширен и для поддержки любого типа IPC.

0
lunaryorn 2 Июн 2010 в 14:31

Вы можете использовать py2exe для преобразования скрипта Python в файл .exe, что означает, что вы можете дать ему любое имя тебе нравится.

В качестве альтернативы вы можете использовать сам Python (а не файл .bat), используя подходы, приведенные в Чтение аргументов командной строки другого процесса (код Win32 C) для определения имени сценариев, запускаемых процессами 'python.exe'.

0
Community 23 Май 2017 в 12:07

Скопируйте python.exe в файл по вашему выбору.

C:\Python26>copy python.exe my_proc.exe
        1 file(s) copied.

C:\Python26>my_proc.exe
Python 2.6.5 (r265:79096, Mar 19 2010, 21:48:26) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

В списке задач он отображается как my_proc.exe.

Я попытался сделать символическую ссылку на python.exe (mklink в Windows 7). К сожалению, он все еще отображается как python.exe в списке задач.

0
Wai Yip Tung 2 Июн 2010 в 18:51

Я просто создал бы файл блокировки в локальной файловой системе и вышел бы, если он уже существует.

0
jhwist 2 Июн 2010 в 15:02