簡體   English   中英

帶有Python和py2exe的Windows服務

[英]Windows services with Python and py2exe

我需要一些使用py2exe轉換python Windows服務的幫助。

讓我解釋一下這個問題。 我有一個python服務,可以正常工作,這里沒有問題。 我使用py2exe將其轉換為可執行文件。 我通過用該服務替換python版本的服務進行了測試,它也沒有問題。

但是,當我將服務的exe版本移動到另一台計算機時,它將在服務管理器中注冊,但不會以錯誤開頭:“系統找不到指定的文件”。 丟失的文件是我編寫的模塊之一。

我稍微玩了一下,然后回到使用py2exe的機器以及該服務的exe版本可以運行的機器。 我刪除了所有與python相關的內容,刪除了py2exe創建的所有內容,但刪除了“ dist”文件夾,我想到的所有內容均與該服務的python版本相關。 exe版本仍然有效(除其他外,我還刪除了其他機器上據說缺少的文件)。

嘗試了一堆不同的東西,但無法使exe版本正常工作。 如果你們有什么想法,我將不勝感激。

PS:我確實在目標計算機上安裝了c ++運行時。 沒有它,您將無法注冊該服務,正如我所說,我可以注冊它,它將無法運行。

即使您將.py腳本轉換為exe,該服務仍會使用python解釋器來運行服務代碼本身。 如果打開“服務”並查看服務屬性,您應該會看到類似-可執行文件的路徑:“ C:\\ Python27 \\ lib \\ site-packages \\ win32 \\ PythonService.exe”

我猜另一台計算機上沒有安裝python。 如果您希望能夠在機器上運行該服務而無需安裝python,則需要執行類似This的操作 ,也可以使用cx_freeze進行操作

http://www.py2exe.org/index.cgi/py2exeAndWindowsServices

那里有一些有關與Windows系統dll沖突的模塊的說明。 他有一個問題,因為他有一個名為version和import version的模塊,導致該應用程序出錯。

您可以嘗試將win32traceutil導入為服務中的第一件事。 這應該允許您運行win32traceutil控制台應用程序以顯示該服務的所有stdout / stderr輸出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM