【问题标题】:Python subprocess.call with cwd not workingPython subprocess.call 与 cwd 不工作
【发布时间】:2017-09-24 10:29:41
【问题描述】:

我尝试了各种各样的东西,没有一个工作。 以下是我的尝试:

subprocess.call(['cordova-test android tests --app platforms/android/build/outputs/apk/android-debug.apk --device-name=emulator-5554 --no-compile'],
      cwd = ['/Users/User/Documents/dev/engineerappcopy'], shell = True)

下一个

subprocess.call(['cordova-test android tests --app platforms/android/build/outputs/apk/android-debug.apk --device-name=emulator-5554 --no-compile'],
       cwd = shlex.split(['/Users/User/Documents/dev/engineerappcopy'])

下一个

subprocess.call(['cordova-test android tests --app platforms/android/build/outputs/apk/android-debug.apk --device-name=emulator-5554 --no-compile'],
       cwd = ['/Users/User/Documents/dev/engineerappcopy'])

【问题讨论】:

  • 会发生什么?有什么错误?
  • 问题是什么?
  • 这与标签cmd有什么关系?

标签: python cmd terminal subprocess


【解决方案1】:

首先,参数行必须是字符串(可选带空格)或参数列表,但不能将命令行作为唯一参数。

那么,当前工作目录必须是一个字符串,而不是一个列表。

试试这个:

subprocess.call(['cordova-test','android','tests','--app','platforms/android/build/outputs/apk/android-debug.apk','--device-name=emulator-5554','--no-compile'],
       cwd = '/Users/User/Documents/dev/engineerappcopy')

【讨论】:

  • 我认为这适用于,shell = True 最后。抛出其他明智的未知目录。然而什么也没发生......但我认为你现在解决了它,谢谢Jean
  • 好的,shell=True 它是,当命令是别名或函数(或内置)时。很高兴它成功了。
猜你喜欢
  • 2014-05-18
  • 2018-10-17
  • 1970-01-01
  • 1970-01-01
  • 2017-10-14
  • 2020-05-14
  • 1970-01-01
  • 1970-01-01
  • 2018-10-18
相关资源
最近更新 更多