Python无法识别命令,但CMD可以识别

时间:2018-07-11 17:00:46

标签: python python-3.x cmd

我已经安装了qpdf,并试图通过Python调用它。

我已将路径添加到系统环境变量,并且可以通过命令提示符成功运行以下命令:

qpdf --decrypt input.pdf output.pdf

运行,没有问题。

但是,当尝试通过Python(来自here的代码)进行调用时,我得到了

  

'qpdf'不被识别为内部或外部命令,   可操作的程序或批处理文件。

import subprocess
subprocess.call(["cmd", "/c", "qpdf --decrypt input.pdf output.pdf"], shell=True)
# or 
subprocess.run(["qpdf", "--decrypt", "input.pdf", "output.pdf"], shell=True)
# or
subprocess.run(["qpdf --decrypt input.pdf output.pdf"], shell=True)

为什么我可以通过cmd而不是在Python中运行它?

1 个答案:

答案 0 :(得分:1)

根据评论:

问题在于仅在启动可执行文件/ shell会话/任何东西时才加载环境变量。在这里,目录已添加到PATH环境变量中,因此需要重新启动sublime文本才能看到更新后的PATH。这不是特定于升华的,如果直接从终端或另一个IDE运行,也是如此。