4

編輯跨平臺部署和安裝方便

一種選擇我設想的,但不知道有足夠的瞭解是如爲Windows編寫一個批處理腳本:

  • 搜索一個Python安裝,下載一個安裝,如果不存在
  • 然後安裝使用distutils同時還處理依賴捆綁包。

看起來這可能是一個相對優雅和簡單的解決方案,但我不知道如何進行 - 任何想法?

原始的問題

簡單

你會推薦以下情形有什麼辦法?

  • 創造的技術應用Linux開發環境
  • 部署,現在也是要在Windows和Mac
  • 現有的代碼庫在Python
  • wine不會安裝Windows版本的Python
  • 沒有Windows安裝CD可用於創建虛擬窗口/ mac機器
  • 移植到java由於現有的代碼庫
  • 客戶都不是技術的用戶,即提供標準的Python包不夠的 - 確實需要安裝自含式產品

背景

我寫Linux下的技術和科學的應用程序,但需要一些他們也可以在Windows/MacOs機器上部署。

在過去我使用過很多Python,但是我發現對於不喜歡安裝python軟件包的非技術用戶,創建一個簡單的可執行文件(通過使用例如py2exe)是困難的,因爲我不能使用wine獲取windows版本的Python安裝。

雖然java似乎是一個不錯的選擇,但如果可能的話,我想避免必須從Python移植現有的代碼,特別是因爲Python也允許編寫可移植的代碼。

我意識到我在這裏試圖涵蓋很多基礎,因此有關最合適的解決方案(即使不完美)的任何建議將不勝感激。

+1

美是unix和mac支持python的開箱即用。你唯一需要確定的是你編寫你的代碼來跨平臺。所以它就像在他們的機器上傾倒項目並在路徑上尋找python一樣簡單,在windows py2exe或pyinstaller上都是不錯的選擇 –

+1

這個問題本該不應該關閉。問題在於:1)部署框架2)開發環境,3)如果有關於該主題的任何現有技術。 – smaudet

回答

5

我有一個project,聽起來與您正在嘗試做的事情模糊不清,我也看到了一些相同的問題,因爲我通常在Linux上開發並且移植到Windows。這是一個Python + wxPython + NumPy + SciPy + matplotlib +其他包,我發現最好的工作是使用PyInstaller。 PyInstaller在處理第三方Python包方面做得非常出色,並且非常輕鬆地創建了一個EXE。

我認爲如果您使用的是py2exe或PyInstaller,那麼自從IIRC以來Windows或多或少都必須在Windows上完成,但有幾個Windows libs必須出現。也許你可以運行Windows EC2實例?根據您的應用程序的複雜程度,您可以改爲使用Portable PythonPyPy

我已經嘗試下載Python,並且需要Windows包裝盒之前的包裝 - 它可以工作,但它總是有點脆弱。如果你可以找到一個安裝程序生成器,讓你指定依賴關係(例如Advanced Installer - 不是免費的,但效果很好),我會嘗試,因爲它似乎是一個更強大一點。

2

py2exe工作得很好,我想你只需要設置一個Windows盒(或VM)就可以用它來構建包。

+0

我擔心這可能是唯一真正的解決方案 - 如果沒有人提出任何替代方案,我將不得不追捕Windows安裝媒體。謝謝! – jmetz

+0

關於使用本地腳本安裝python然後啓動標準'distutils'設置的任何想法或想法? – jmetz

+0

@mutzmatron從編寫一個爲現有的Python安裝設置'virtualenv'的腳本,我的低調印象是它不重要。 – delnan

0

我會推薦使用py2exe的Windows端,然後BuildApplet的mac端。這將允許您爲不太熟悉的用戶創建一個簡單的應用程序,雙擊它。