2016-07-27 27 views
2

我使用tkinter和pyinstaller/py2exe(任何一個都可以),從我的python腳本創建一個可執行文件作爲單個文件。我可以創建可執行文件,並且它可以在py2exe或pyinstaller的-F選項不使用bundle選項時按需運行。我使用os.system()在我的代碼中運行第三方python腳本,並且可以在創建它們之後將這些腳本簡單地放置在「dist」目錄中以使其運行。該命令有幾個參數:輸入文件,輸出文件,線程數..等,所以我不確定如何使用導入將其添加到我的代碼中。不幸的是,這是在Windows上,所以一些同事可以使用GUI,並希望分發單個可執行文件。PyInstaller/Py2exe - 在單個文件編譯中包含與第三方腳本的os.system調用

**編輯:**我可以把它捆綁到一個單一的可執行文件,並提供與exe的腳本。但是,在我的代碼中運行第三方腳本時,問題仍然在os.system("python script.py -1 inputfile -n numbthreads -o outputfile..")。我有一個同事用它提供的腳本測試可執行文件,但是現在他們需要安裝python,這是不可接受的,因爲會有多個用戶。

回答

0

經過幾天的一些測試,我能夠弄清楚如何解決這個問題。而不是os.system,我使用subprocess.call("script.py arg1 arg2 ..., shell=True)爲我需要運行的每個腳本。另外,在將腳本傳輸到Windows之前,我使用了chmod +x(在Linux中),以確保它們是可執行的(有人可以告訴我這是否真的有必要)。然後,無需安裝python,我的同事就可以運行該程序,在將它編譯爲pyInstaller的單個文件之後。我也可以用blast可執行文件來做同樣的事情(用戶不需要在本地安裝blast(如果exe還附帶了腳本的分發)。這避免了必須調用bipython ncbiblastn命令行和安裝。

相關問題