Имена скриптов Python в списке задач - PullRequest
0 голосов
/ 02 июня 2010

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

Ответы [ 5 ]

1 голос
/ 02 июня 2010

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

0 голосов
/ 02 июня 2010

Скопируйте 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 голосов
/ 02 июня 2010

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

0 голосов
/ 02 июня 2010

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

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

0 голосов
/ 02 июня 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...