运行python脚本

2024-10-01 09:16:32 发布

您现在位置:Python中文网/ 问答频道 /正文

首先,对不起,如果这是一个重复,我已经搜索,找到一些修复,但我是愚蠢的,不能申请。 我不是一个开发人员,程序员,只是想运行一个能做一些事情的python脚本。我对python有基本的了解,所以跟我说话就像我是个傻瓜一样。在

这些是使bot运行的依赖关系。跑Python3机器人.py运行正常,但我需要一些东西,重启程序时,它死了,pm2似乎很容易像我这样的白痴。在

import discord
import asyncio
import datetime
import os
import json
import requests
from coinmarketcap import Market
from steem import Steem
from steem.post import Post
from steem.blog import Blog
from steem.instance import set_shared_steemd_instance
from steem.account import Account
from steem.steemd import Steemd
from discord.ext.commands import Bot
from discord.ext import commands

当我运行pm2 start bot.py 这就是我得到的 pm2 ls ┌──────┬──────┬─────────┬────┬─────┬────────┐ │ Name │ mode │ status │ ↺ │ cpu │ memory │ ├──────┼──────┼─────────┼────┼─────┼────────┤ │ bot │ fork │ errored │ 15 │ 0% │ 0 B

我读过pm2应该识别.py并运行脚本,那么为什么它不能像预期的那样工作呢?在

pm2 -v 2.10.1 运行ubuntu 16.04 LTS


Tags: instancefrompyimport脚本开发人员bot事情
2条回答

据我所知(我承认这并不全面),pm2是一个专门为node.js脚本开发的流程运行器/监视器/管理器。在

虽然使用pm2管理python进程似乎是可能的,但我从未听说过有人这样做。在

对于您的问题,您可以通过检查~/.pm2/logs的内容来发现失败的原因,这是pm2记录其运行时信息的地方。(上面的~引用您的主目录。)

由于您可以自行运行脚本,我认为您可能遇到了文件路径问题。要进行筛选,请使用以下命令创建一个名为pm2-test.js的脚本:

console.log(JSON.stringify(process.env, null, 2))

使用pm2 ./pm2-test.js name "test"运行此程序

然后运行pm2 log test,它将把pm2-test的输出日志打印到控制台。(您将需要CTRL-C来停止此操作,因为它设计为在新日志条目出现时不断地流式传输)

请特别注意与PATH相关或包含cannot locate或{}等文本的任何错误。在

记住pm2 delete test将该过程从pm2的管理中删除。在

如果这两个日志没有为您提供足够的信息来解决问题,您可以尝试使用另一个进程监视器。在

有几个用python编写的进程监视器可以通过Google找到。在

由于我对它们都没有经验,而且我倾向于使用专门针对手头问题编写的工具,我建议使用^{},这是一个通用的流程管理器/监视器,易于设置,非常稳定,并且有许多可用的示例配置。在

因为我还没有看到我解决这个问题的方法,而且也没有验证过的解决方案,所以我会给出我的。希望有帮助!在

虽然pm2确实是为节点.js,可以运行Python脚本。我已经做了一段时间了,一切都很好!在

我也读过pm2应该自动检测文件中的.py,但根据我的经验,它在检测python3方面做得并不好。指定使用哪个解释器对我的情况有帮助。在

为此,您可以添加以下参数: interpreter python3。 所以在您的例子中,完整的命令应该是pm2 start bot.py interpreter python3。在

相关问题 更多 >