gpt4 book ai didi

python - 组织一个Python应用程序

转载 作者:行者123 更新时间:2023-12-01 05:59:14 28 4
gpt4 key购买 nike

我有一个 Python 应用程序,我有一个关于打包的问题,​​这并不是真正的 distutils 问题,而是如何组织和设置应用程序以便可以从命令行轻松使用它的问题。

假设应用程序包含一个包,并暂时假设我不一定希望将其设为 distutils 包(尽管我可能会被劝阻。)

程序本身作为 SNMP 子代理由 Net-SNMP 使用 pass_persist 运行。这对于这个问题来说并不是特别重要,它只是意味着程序整体被执行,并读取标准输入和标准输出上的响应。

进一步假设代理是按照或多或少规范的 Python 方式构建的

  agent
__init__.py
main.py
<other modules at the same level>

main.py 是一个简单的程序,类似于

#!/usr/bin/env python
import sys
def main(argv):
<initialize the environment, input output, logging and so on>
while <not done>:
<process an input>
<clean up and terminate>

if __name__ == '__main__':
main(sys.argv)

似乎只有几种方法可以组织运行:

将包放在 site-packages 中的某个位置,并在 PATH 中有一个顶级程序,例如

#!/usr/bin/env python
from agent import main
main(sys.argv)

将包目录放在某处并使用以下命令运行

/path/to/directory/agent/main.py

(bumpo 版本是将代理目录放在路径中的某个位置,这样您就可以运行 main.py)

或者第三个,更Pythonic和很酷的方法,让我安装代码并将一些我不知道的东西直接放入路径中。

谷歌搜索没有多大帮助,我怀疑这是那些“太愚蠢而无法回答”的问题之一。不幸的是,我太笨了,不知道这一点。

最佳答案

“将包目录放在某处”是其中大部分内容。剩下的就是编写一个 shell 脚本,在 python 解释器上使用 execmain.py 脚本。

#!/bin/sh
exec python /usr/share/myapp/main.py "$@"

关于python - 组织一个Python应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11278449/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com