在Heroku上使用python discord bot调用C二进制文件

问题描述 投票:0回答:1

我有一个问题,我编写了一个基本的python bot,其中一个名为“ascii”的命令从ctx获取输入,然后使用subproccess.py调用C二进制文件,这几乎只是用“#”写入输入, “”,当我在我的电脑上运行它时,一切正常,但我只是将机器人放在heroku上,这不起作用(其他命令工作),我称之为

subprocess.check_output("ascii \"" + " ".join(text) + "\"", shell=True)

在日志中,我得到了Command 'ascii "input"' returned non-zero exit status 127.,这是我发现的,并且找不到该命令,所以我想我必须在路径中添加一个directiory(比如/ apps / bot / ascii或者其他东西)但我无法弄清楚究竟要放在那里或者这是否是问题。

任何想法如何使其工作?

edit_1:我试图将函数的调用更改为/app/ascii,这应该是我至少想到的目录,但现在它返回退出状态126,这是命令不是可执行文件

edit_2:刚尝试在heroku上使用控制台运行ascii,在第一个权限被拒绝时,但在我给它许可之后,它运行了。我是否需要以某种方式为ascii设置全局权限?就像在requirements.txt中那样?

python heroku bots discord discord.py
1个回答
0
投票

Sooo,对于任何想做这种事情的人,我会说,不要......我在设置这方面遇到了很多麻烦,但是现在,它实际上看起来很好,没有问题所以到目前为止,如果我只是将.c文件重新编写成python,那将会快得多,而不是那么困难,最后要快得多。也就是说,我会告诉你我是如何使它工作的,并且遵循它,你可以让它工作得相当快。

对于“教程”:首先,调用二进制文件,因为我在帖子中有完美的工作,不需要进行任何更改。

在部署它的github上我需要按照惯例添加一个procfile(你可以在互联网上搜索,几乎一行代码调用worker,.py bot文件),requirements.txt(其中)我使用的非标准库必须添加,discord和asyncio为我)和runtime.txt(强制它运行python 3.6.8,实际上可能不需要)。还有,我必须创造的makefile。不要忘记上传您想要使用的所有必需的.c和.h文件。这应该是在github上。

现在来到heroku:

首先创建一个新的应用程序,我还没有将它连接到github。然后我添加了一个C buildpack(这就是makefile的用途),并添加了heroku上的python buildpack。然后我回去部署并连接了github,启用了自动部署以实现良好的测量和部署。现在回到概述,配置dynos,你应该只看到一个工人,你在Procfile中添加的工人。激活它,如果我没有忘记任何步骤,那么.c文件应该用make和makefile编译,并且应该能够在python调用时运行。

现在我看着它,它看起来像20分钟的工作大声笑,我花了2,5天试图让它工作......

好吧,至少现在你不必经历我所做的事情,如果有人需要这样做:)

如果您还有其他问题,我会尝试提供帮助,拍摄留言,此处或不和(我的姓名与此处完全相同,并将继续保留)

© www.soinside.com 2019 - 2024. All rights reserved.