【问题标题】:Why subprocess.run() freezes on certain application?为什么 subprocess.run() 在某些应用程序上冻结?
【发布时间】:2023-01-27 00:38:29
【问题描述】:

为什么 subprocess.run() 在此应用程序上冻结?

import subprocess
subprocess.run('eumdac.exe')

该应用程序来自官方来源:https://gitlab.eumetsat.int/eumetlab/data-services/eumdac/-/releases/1.2.0

这是我在 cmd.exe 中运行它得到的结果:

(project_directory)>eumdac
usage: eumdac [-h] [--version] [--set-credentials ConsumerKey ConsumerSecret] [--debug]
              {describe,search,download,subscribe,tailor} ...

EUMETSAT Data Access Client

positional arguments:
  {describe,search,download,subscribe,tailor}
    describe            describe a collection or product
    search              search for products at the collection level
    download            download product(s) from a collection
    subscribe           subscribe a server for a collection
    tailor              tailoring product(s) from collection

optional arguments:
  -h, --help            show this help message and exit
  --version             show program's version number and exit
  --set-credentials ConsumerKey ConsumerSecret
                        permanently set consumer key and secret and exit, see https://api.eumetsat.int/api-key
  --debug               show backtrace for errors

附言。 “cmd /c eumdac.exe” 都不起作用。

【问题讨论】:

    标签: python python-3.x windows


    【解决方案1】:

    你可以使用subprocess.run(['powershell', './eumdac.exe', '-h'])

    要捕获输出,您可以使用以下格式。

    output = subprocess.run(['powershell', './eumdac.exe', '-h'], capture_output=True)
    print(output.stdout.decode('utf-8'))
    

    【讨论】:

    • 仍然冻结,永远等待
    • 显示什么?或者你怎么知道它是 foren 的?
    猜你喜欢
    • 2022-07-26
    • 2022-12-09
    • 2019-02-14
    • 1970-01-01
    • 1970-01-01
    • 2011-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多