我開發Python工具。每個工具都是編程項目的一部分,包含源文件和腳本以啓動程序。這裏的語言是Python,但可以是其他語言。使用設置環境組織python項目
src/
package1/
module1.py
package2/
module2.py
scripts/
program1.py # parses arguments; uses modules; starts workflow.
program2.py
pylauncher.sh # sets environment; deals with output; calls any specified python script.
每個Python腳本都需要用戶輸入,解析提供的參數,並使用相關的Python模塊啓動例程。最終用戶只要擁有調用腳本是這樣的:
$ cd path/scripts
$ python program1.py arg1 arg2
,或者根據翻譯版本,
$ cd path/scripts
$ path/to/the/right/python program1.py arg1 arg2
目前我也有一個bash腳本,pylauncher.sh,我用於設置Python路徑,Python庫,將輸入重定向到日誌等。所以用戶沒有指定這一切,必須啓動命令:
$ cd path/scripts
$ ./pylauncher program1.py
這是方便,因爲它向用戶隱藏環境的東西。但在我看來,也許用戶不應該打電話給發射器。所以我正在考慮擺脫Python腳本程序{1,2} .py,並將pylauncher.sh重命名爲程序{1,2} .sh。在此過程中,前一個程序{1,2} .py中使用的例程將被轉移到模塊的主函數中,或者僅移動到那裏。
項目結構將如下所示:
src/
package1/
module1.py
program1.py # parses arguments; use python modules; starts the program workflow.
package2/
module2.py
program2.py
scripts/
program1.sh # sources set_environment.sh; calls program1.py
program2.sh # sources set_environment.sh; calls program2.py
set_environment.sh
或者腳本中的文件夾讓程序{1,2}的.py:
src/
package1/
module1.py
package2/
module2.py
scripts/
program1.py # parses arguments; starts the program workflow.
program1.sh # sources set_environment.sh; calls program1.py
program2.py
program2.sh # sources set_environment.sh; calls program2.py
set_environment.sh
用戶將最終不得不使用下面的命令:
$ cd path/scripts
$ ./program1.sh
所以我目前使用pylauncher bash腳本的第一個解決方案,我正在考慮改用第二種解決方案。不過,我想知道其他軟件開發者的習慣,習慣和做法。你會怎麼做?你是否看到更方便的方式,對於用戶,對於開發者來說,如果可能的話,避免冗餘?任何建議和批評都是受歡迎的。
感謝您的回答。我還沒有考慮過使用pyinstaller。 Python專屬項目可能會很有趣。現在我正在尋找組織項目的一般方法。 – kaligne
@kaligne哦,我以爲這是一個python獨家項目,我想你可能想澄清原始問題中的一些觀點,以獲得更好的答案:) – kalvatn
是的,我很抱歉,它不是那麼清楚。我應該刪除python標籤嗎? – kaligne