2015-12-27 36 views
-3

我打算創建一個將用於分析生物數據的軟件,我們中的一些生物學家沒有太多的編程技巧,但我們做了很多重複的任務,並且需要編寫我們總是使用更多的腳本或程序。 我已經決定把它縮小到只有一個非常重要的任務,它是一個搜索腳本,即查詢基因數據庫(數據),已經有一個程序,這就是所謂的ncbi爆炸,通常需要是熟悉命令行並且還需要ubuntu或windows,但是如果您必須分析生成的大量結果,則會很麻煩。使用python腳本創建一個帶有UI的軟件

,所以我必須要打包一些我的Python腳本到一個軟件,以便其他人可以找到它方便地分析自己的工作

開放式與閉源(牌)

我打算做一些免費的軟件中的用戶的功能,雖然在後一階段,我打算incorpaorate這將需要一個負擔得起的許可證

測試管道3210所以使用這一功能,它使測試更加簡單 - 我還不知道,我不介意以linux-ubuntu和windows作爲平臺。 我很欣賞你的建議,只選擇一種語言,我會用python,我怎麼會希望tyhe軟件至少支持其他語言(如R)創建的其他免費程序,例如客戶端在他們需要它們時安裝的插件。 我希望這能更多地照亮我已經複雜的情況 謝謝

回答

2

聽起來就像你在冒險和一些新的學習曲線的開始。我會讚揚你的創造意願。在您開始旅程時,需要考慮以下幾點。

fyi:「軟件」通常是一個單詞,沒有空格。 基於「軟件」的背景下,它似乎是你的意思是「應用程序」。

我提到「軟件」和「應用程序」不會給你一個困難的時間,但是因爲我認爲1)它會幫助你在將來的搜索中尋找方法來完成某些事情(例如,你會「python應用程序安裝程序」比「python軟件安裝程序」更有用,2)您可以更清楚地向人們解釋您正在嘗試的內容。

所以。您的應用程序將需要您的腳本集合的用戶界面。你想要一個圖形用戶界面(GUI)?或者命令行界面(CLI)?

GUI:比CLI更復雜:
對於一個GUI會更復雜,獲取在Windows & Linux上運行的東西。 據我所知,沒有一種簡單的方法來創建一個在Windows上運行的單一GUI,而無需添加其他工具。也許python有簡單的GUI用戶界面的東西,你可以使用它。

Perl的我會在這裏你指出:「在Windows上的Perl GUI編程」 Perl GUI programming on Windows 此列出了一些Perl的方法來考慮,你必須對他們進行調查,看看哪些還能夠在Linux上運行。小心使用應用程序包含需要打包的其他庫(或記錄如何安裝)。

CLI:一個GUI更加簡單:
因爲它們是今天剛剛劇本,我會建議開始使用CLI這可能意味着清理你的說法在Perl處理(@ARGV,我不能發表評論蟒蛇)。 通讀您的代碼並找到文字,當您爲新的東西運行腳本時您會改變這些文字,這些東西將成爲您的參數。如果它開始看起來像你正在創建太多的參數,也許你想看看一個配置文件(某種屬性文件)。

您將更容易開始使用CLI,並且您可以隨時回來並在未來版本中添加GUI選項。我發現設計一個經過深思熟慮的CLI可以更輕鬆地專注於重要的GUI,因此它可以幫助您最終的GUI變得更好。

包裝
打包您的應用程序將是一個挑戰。 您的腳本是否需要使用python & perl安裝時不包含默認組件的庫?如果是這樣,您需要找出一種方法來提供這些(例如,將它們包含在您的發行版中,或者包含用戶可以遵循的文檔以下載和安裝這些庫)。

我無法評論pyinstaller。

在Perl,我會爲你這個問題上分發一個Perl的應用:Distributing a Perl Application

用戶技能
有多大的本事,你希望你的用戶有哪些? 如果需要安裝python和perl解釋器,它們會好嗎?並不是每個用戶都有這種技術技能。 你想確保你的腳本驗證他們需要的python & perl的最低版本嗎?

文檔
請參閱上面的用戶技能。您將需要提供文檔。 這將由誰將使用您的腳本驅動。你的目標用戶是什麼樣的?你能寫一個「5行」總結,讓我想下載它們並嘗試它們嗎?這將有助於您專注於如何呈現腳本。

開放與封閉源代碼(授權)
這也涉及許可。你是否瞄準了商業產品?給世界另一個開源的禮物?這些都是很好的事情,但你會想爲你的應用程序選擇合適的許可證。如果你想避免發佈你的腳本的源代碼,我們也有一些工作要做(我不是建議你追求一種方法或另一種方法,只是在你把它放到互聯網上之前做出決定)。

測試
測試您的應用程序將是一個挑戰。 如果您沒有針對腳本進行自動化測試,您將會瘋狂地嘗試驗證它是否在您希望運行的任何位置運行。

您是否有針對腳本的單元測試&測試套件,以便您可以驗證它們在不同版本的Windows和各種Linux發行版上正確運行? 如果你的腳本非常簡單,也許它們在32位和64位操作系統上運行並不重要。 也許沒關係,如果他們運行在Windows 10,Windows 8.x,Windows 7.x,也許各種版本的Windows Server(2012,2008,...)。 也許沒關係,如果他們在RedHat,Suse,Ubuntu,Mint上運行...

您可能需要一些理智檢查來驗證您的安裝程序是否正常工作且環境適合。 不知道你的腳本是做什麼的,很難說他們從中獲益多少。

免費諮詢:只選擇一個腳本語言和與
運行,我會用一些完全免費的諮詢結束(值得你付出:-)什麼吧)
想想真的很難只左右選擇一種腳本語言並寫入所有內容。

如果我像你一樣描述我會嚴肅考慮合併成單一語言,只是爲了Python或者只是做Perl,你將會有很多額外的複雜性來支持兩個腳本系統。與學習如何創建安裝指南和使用兩種不同語言打包應用程序相比,將Perl腳本重寫爲Perl(或其他方式)所需的時間和精力可能會更容易。

+0

謝謝你的詳細反饋,我當然意識到如果我繼續使用它,複雜的任務將是多麼的複雜。我會在這裏用更多的背景來闡述你的觀點。 –

+0

經過一段時間的睡眠之後,回想一下這段時間,我不想讓一個有趣的項目變成一個有趣的項目似乎很瘋狂......我認爲你最終想成爲一個跳躍的人太過分了。所以 - 我只想提一下我可以想到的最簡單的方法,即開始將腳本作爲GitHub項目進行開源並以這種方式發展 - 您不必擁有我在第1天處理的所有內容,如果你發現腳本有幫助,那麼可能還有其他一些人。祝你好運 :-) – jgreve

相關問題