尝试使用nohup启动Python脚本时出现语法错误

时间:2017-11-22 09:43:19

标签: python ubuntu nohup

我想在我的Ubuntu服务器24/7上运行Python3脚本。 我读到nohup可以实现这一点。 所以我做了以下命令来启动脚本: nohup python3 launcher.py & 之后,我将在nohup.out中收到包含以下内容的语法错误:

  File "launcher.py", line 22
    async def on_ready():
        ^
SyntaxError: invalid syntax

但问题是,如果我通过python3 launcher.py启动脚本,我将不会收到语法错误。 我正在使用Discord Bot,所以我使用Discord.py。

有人可以解释一下,为什么在用nohup打开脚本时会出现语法错误?

因为有人在这里要求代码:

@client.event
async def on_ready():
    def longestWord(sentence):
        """
            Get's the longest word in a string
                Example: longestWord(String1 + " " + String2)
            and for multiple Strings:
                Example 2: longestWord(String1 + " " + String2 + " " + String3)
        """
        longest = 0
        word = ''
        for i in sentence.split():
            if len(i) > longest:
                word = i
                longest = len(i)
        return word

    length = len(longestWord(client.user.name + " " + client.user.id)) + 10
    print("#".center(length,"#"))
    print("## Bot Online! ".ljust(length, "#"))
    print("## Name: {} ".format(client.user.name).ljust(length, "#"))
    print("## ID: {} ".format(client.user.id).ljust(length, "#"))
    print("#".center(length, "#"))
    print("\n")
    await client.change_presence(game=discord.Game(name='Phase: In Developement'))

1 个答案:

答案 0 :(得分:0)

它并没有真正回答我的问题但是。我现在使用screen在后​​台打开Python脚本。

  1. 键入screen以开始新会话。
  2. 打开我的Bot所在的目录
  3. 键入python3 launcher.py以使用普通Python3启动脚本
  4. 有效。