我开发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模块启动一个例程。最后,用户只需按以下方式调用脚本:
^{pr2}$或者,取决于解释器版本
^{3}$目前我还有一个bash脚本,pylauncher.sh页,用于设置Python路径、Python库、将输入重定向到日志中等等。因此,用户不必指定所有这些,而必须启动命令:
$ cd path/scripts
$ ./pylauncher program1.py
这很方便,因为它对用户隐藏了环境信息。但在我看来,也许用户不应该为调用启动程序而烦恼。因此,我考虑去掉python脚本程序{1,2}.py并将pylauncher.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放在scripts文件夹中:
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的意思,我在linux系统上,但是这个工具是跨平台的,看起来有很好的文档记录。在
需求(用于构建的python头和安装包的PIP)
要生成的文件
^{pr2}$用法(F标志指示pyinstaller创建单个文件可执行文件)
医生
相关问题 更多 >
编程相关推荐