【问题标题】:How to run minecraft server from python?如何从 python 运行我的世界服务器?
【发布时间】:2019-05-02 06:00:34
【问题描述】:

我不知道如何使用 python 命令启动服务器。

s = subprocess.Popen('"D:\MC SERVER 2k19\server.jar" -jar server.jar java', stdin=subprocess.PIPE, stdout=subprocess.PIPE, shell=True)

此代码运行没有错误,但没有在 cmd 中启动服务器。

谢谢。

【问题讨论】:

    标签: python minecraft popen


    【解决方案1】:

    这与你传递参数的方式有关。

    subprocess.Popen(['java', '-jar', 'server.jar'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, shell=True, cwd='D:\MC SERVER 2k19')
    

    【讨论】:

      【解决方案2】:

      如果您需要从 Python 中使用 CMD 进程启动 Java 程序显示窗口,您可以使用 subprocess 调用打开另一个 CMD 终端并运行命令。

      在 Windows 中,您需要在传递给辅助 CMD 进程的路径中对空格进行 CMD 转义。这是用胡萝卜完成的^

      proc = subprocess.Popen(
          ['start', 'cmd', '/k', "D:\\MC^ SERVER^ 2k19\\server.jar", 
           '-jar', 'server.jar', 'java'], 
          stdout=subprocess.PIPE, 
          stderr=subprocess.PIPE, 
          shell=True
      )
      

      请记住,您将能够从 Python 的辅助 CMD 进程中检索任何输出。

      即该过程不会返回任何内容。

      proc.communicate()
      # returns:
      (b'', b'')
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-15
        • 1970-01-01
        • 2019-02-03
        • 2021-07-09
        相关资源
        最近更新 更多