Форум сайта python.su
0
Здравствуйте всем!
Имеется програмка,которую я выложил
Програмка вырезает выделенные файлы и вставляет их на флэшку в папку БАГ.
Нужно скомпилировать этот скрипт так,что бы работал на Винде ,причем не только 7ке а и на Эскпи. А также на этих компах не стоит питон и хочется ,что бы это выглядело как сервис и поднималось с компом
скрипт работает при нажатии WIN+'z' и завершает работу при нажатии на WIN+'q'
На сколько помню я создавал сборку используя py2exe ,также что бы работало на компах без питона нужно было какой то дистрибутив Си добавить. Но я получу в конце папку с файлом Exe. Как же тогда его поставить как сервис ……
import win32serviceutil import win32service import win32event import servicemanager class AppServerSvc (win32serviceutil.ServiceFramework): _svc_name_ = "DummyService" _svc_display_name_ = "Dummy Service" _svc_description_ = "Dummy Service Description" def __init__(self,args): win32serviceutil.ServiceFramework.__init__(self,args) self.hWaitStop = win32event.CreateEvent(None,0,0,None) self.hWaitResume = win32event.CreateEvent(None, 0, 0, None) self.timeout = 10000 #Пауза между выполнением основного цикла службы в миллисекундах self.resumeTimeout = 1000 self._paused = False def SvcStop(self): self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING) win32event.SetEvent(self.hWaitStop) servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE, servicemanager.PYS_SERVICE_STOPPED, (self._svc_name_, '')) def SvcPause(self): self.ReportServiceStatus(win32service.SERVICE_PAUSE_PENDING) self._paused = True self.ReportServiceStatus(win32service.SERVICE_PAUSED) servicemanager.LogInfoMsg("The %s service has paused." % (self._svc_name_, )) def SvcContinue(self): self.ReportServiceStatus(win32service.SERVICE_CONTINUE_PENDING) win32event.SetEvent(self.hWaitResume) self.ReportServiceStatus(win32service.SERVICE_RUNNING) servicemanager.LogInfoMsg("The %s service has resumed." % (self._svc_name_, )) def SvcDoRun(self): servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE, servicemanager.PYS_SERVICE_STARTED, (self._svc_name_,'')) self.main() #В этом методе реализовываем нашу службу def main(self): #Здесь выполняем необходимые действия при старте службы servicemanager.LogInfoMsg("Hello! I'm a Dummy Service.") while True: #Здесь должен находиться основной код сервиса servicemanager.LogInfoMsg("I'm still here.") #Проверяем не поступила ли команда завершения работы службы rc = win32event.WaitForSingleObject(self.hWaitStop, self.timeout) if rc == win32event.WAIT_OBJECT_0: #Здесь выполняем необходимые действия при остановке службы servicemanager.LogInfoMsg("Bye!") break #Здесь выполняем необходимые действия при приостановке службы if self._paused: servicemanager.LogInfoMsg("I'm paused... Keep waiting...") #Приостановка работы службы while self._paused: #Проверям не поступила ли команда возобновления работы службы rc = win32event.WaitForSingleObject(self.hWaitResume, self.resumeTimeout) if rc == win32event.WAIT_OBJECT_0: self._paused = False #Здесь выполняем необходимые действия при возобновлении работы службы servicemanager.LogInfoMsg("Yeah! Let's continue!") break if __name__ == '__main__': win32serviceutil.HandleCommandLine(AppServerSvc)

Прикреплённый файлы:
last_copy.rar (7,4 KБ)
Офлайн
88
Имхо, правильный путь - устанавливать интерпретатор в систему, на ряду с дотнетами и прочим.
Офлайн
0
я не могу ходить по всей компании и всем ставить интерпретатор 
нашел такое:
http://www.py2exe.org/index.cgi/Tutorial#Step3
почитал про дистрибутив C
в папку с прогой кинул этот файл: msvcr90.dll он в архиве уже
затем написал setup.py он тоже в архиве
запустил python setup.py py2exe
все пробежало и скомпилировалось.
нашел получившиеся файлы, но почему то запуская файл copy_to_flash.exe и затем пытаясь запустить скрипт ничего не происходит
То есть в IDE работает ,а там нет……
Кто подскажет в чем проблема 
Прикреплённый файлы:
last_copy.rar (250,5 KБ)
Офлайн
2
C:\Users\Администратор>sc create -help
Отредактировано bs0d (Фев. 2, 2014 22:11:43)
Офлайн
0
Поправка - запуская copy_to_flash.py файл из cmd все работает на ура ,а вот после компиляции почему то нет 
Офлайн
0
я пока ничего не инсталлирую . Я лишь компилирую свой код в байд код ,на сколько я понимаю…..
Офлайн
31
DoktopatЗапускай exe в комстроке, должно показать если есть ошибки, если нет, пробуй собрать exe с cx_Freze
Поправка - запуская copy_to_flash.py файл из cmd все работает на ура ,а вот после компиляции почему то нет
Отредактировано sanodin (Фев. 3, 2014 06:33:07)
Офлайн
0
Начал вчитываться в лог билда…
прикрепил его
Прикреплённый файлы:
missing.jpg (482,0 KБ)
Офлайн
0
Затем все же запустил ехе через командную строку
результат прикрепил
Прикреплённый файлы:
run_of_exe.jpg (436,4 KБ)
Офлайн
31
Добавить в сборку недостающие модули
C:\Python27\Lib\site-packages\pywinauto\tests\allcontrols.pyc
Отредактировано sanodin (Фев. 3, 2014 09:15:52)
Офлайн