gpt4 book ai didi

python - 没有扭曲的扭曲应用程序

转载 作者:太空狗 更新时间:2023-10-30 01:03:37 25 4
gpt4 key购买 nike

我使用 Twisted 框架为自己编写了一个不错的应用程序。我使用如下命令启动它:

twistd -y myapp.py --pidfile=/var/run/myapp.pid --logfile=/var/run/myapp.log

效果很好 =)

为了启动我的应用程序,我用这个命令写了一个脚本,因为我很懒^^但是由于我使用相同的 twistd 选项启动我的应用程序,并且我认为脚本 shell 解决方案很丑陋,所以我如何在我的应用程序内部做同样的事情?我想通过执行 ./myapp 来启动我的应用程序,而无需 shell 解决。

我试图在扭曲的文档和阅读扭曲的源代码中搜索它,但我不明白它,因为它是我在 Python 中的第一个应用程序(顺便说一句,很棒的语言!)

在此先感谢您的帮助。

最佳答案

您需要将 twistd 脚本作为模块从 Twisted 导入并调用它。最简单的解决方案是使用您现有的命令行,导入 sys 模块以替换 argv 命令行,使其看起来像您想要的 twistd 运行,然后运行它。

这是一个简单的示例脚本,它将采用您现有的命令行并使用 Python 脚本而不是 shell 脚本运行它:

#!/usr/bin/python
from twisted.scripts.twistd import run
from sys import argv
argv[1:] = [
'-y', 'myapp.py',
'--pidfile', '/var/run/myapp.pid',
'--logfile', '/var/run/myapp.log'
]
run()

如果你想把它很好地打包成一个包而不是硬编码路径,你可以通过查看特殊的 __file__ 来确定 myapp.py 的路径Python 在每个模块中设置的变量。将其添加到示例中如下所示:

#!/usr/bin/python
from twisted.scripts.twistd import run
from my.application import some_module
from os.path import join, dirname
from sys import argv
argv[1:] = [
'-y', join(dirname(some_module.__file__), "myapp.py"),
'--pidfile', '/var/run/myapp.pid',
'--logfile', '/var/run/myapp.log'
]
run()

您显然可以做类似的事情来计算适当的 pidfile 和 logfile 路径。

更全面的解决方案是写a plugin对于 twistdaxiomatic来自 Axiom 对象数据库项目的命令行程序作为一个经过测试的、具有生产值(value)的示例,说明如何对 twistd 进行与上述类似的命令行操作,但对命令行选项、不同的非 twistd 运行实用程序功能等。

关于python - 没有扭曲的扭曲应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6610489/

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