首页 > 解决方案 > Python无法识别命令,但CMD可以

问题描述

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

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

qpdf --decrypt input.pdf output.pdf

这运行,没有问题。

但是,当尝试通过 Python 调用(来自这里的代码)时,我得到

'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 中运行?

标签: pythonpython-3.xcmd

解决方案


根据评论:

问题是环境变量仅在您启动可执行文件/shell会话/任何内容时加载。在这里,环境变量中添加了一个目录PATH,因此需要重新启动 sublime text 才能看到更新的PATH. 这不是 sublime 特有的,如果您直接从终端或其他 IDE 运行,情况也是如此。


推荐阅读