如何从 python 运行 我的世界服务器?

How to run minecraft server from python?

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

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

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

谢谢。

这与你传递论点的方式有关。

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

如果您需要从 Python 显示 window 使用 CMD 进程启动 Java 程序,您可以使用子进程来调用打开另一个 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 进程中检索任何输出

即该过程将 return 什么都没有。

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