2013-07-16 110 views
0

我有一個需要在Linux和Windows環境中運行的python服務器,我的問題是關於部署。部署解決方案的最佳方法是什麼,而不是雙擊文件並運行它?將Python腳本部署到Windows和Linux

因爲我在服務器上使用server_forever(),所以我只能從命令行運行腳本,但這會保持python窗口打開。如果我註銷機器,自然過程將停止。那麼,如果用戶登錄或關閉計算機,部署需要保​​持運行的python腳本的最佳方法是什麼。

既然我要使用多種環境,Linux和Windows,請問您可以具體說明您正在討論的操作系統?

對於windows,我正在考慮使用Windows調度程序運行'At Startup'腳本。但我想看看是否有人有更好的選擇。對於Linux,我真的不知道要創建什麼。我假設CRON的工作?

部署確實涉及到編碼,因此在多處理作業管理器上使用serve_forever()會在執行時保持python窗口處於打開狀態。有沒有辦法通過代碼隱藏這個窗口?你會推薦使用像py2exe這樣的轉換工具嗎?

+0

暫停?什麼是你的人,我有一個部署問題,這不是關於編程?不是每個人都知道一切,有時我們需要幫助。那麼應該在哪裏發佈? –

回答

1

這是整個圖書館的主題,所以我在這裏簡單介紹一下:-) 你基本上可以直接啓動腳本,然後有多個選項以這種方式繼續運行的背景。

如果你有一定的功能,需要在正規的時刻運行,則可以通過將安排它做:

  • 的Windows:Windows計劃或特定的調度工具
  • 的Linux:Cron

如果您的問題是您希望在SSH進入Linux的時候啓動腳本而不關閉您,那麼您需要查看「屏幕」或「tmux」工具。

如果您想讓它自動啓動,您可以通過使用「At Startup」來完成,因爲您指出,Linux具有類似的功能,但首選和更可靠的方法是設置更好的服務與操作系統集成。

更多的功能可以通過使用應用程序服務器這樣一個Django

的Tomcat(見註釋)來產生是一種選擇,但絕對不是標準的;您將很難從運行Python的Tomcat人員或在Tomcat上運行他們的東西的Python人員尋求支持。話雖如此,我想你可以啓用CGI並讓它使用腳本運行Python命令。

然而,我不強烈推薦Python腳本,而是強烈建議您看看可能適用於您特定用例的不同Python選項。從Flask這樣的輕量級網絡解決方案到像Twisted這樣的多功能網絡引擎,再到像Django這樣的完整網絡框架。

他們都有相當深思熟慮的部署解決方案。查看WSGI瞭解更多背景。

+0

你能解釋一下使用Django應用程序服務器嗎?可以改用tomcat(apache的應用程序服務器)嗎? –

相關問題