python - 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 中运行?
解决方案
根据评论:
问题是环境变量仅在您启动可执行文件/shell会话/任何内容时加载。在这里,环境变量中添加了一个目录PATH
,因此需要重新启动 sublime text 才能看到更新的PATH
. 这不是 sublime 特有的,如果您直接从终端或其他 IDE 运行,情况也是如此。
推荐阅读
- c++ - 如何使用 nghttp2 解决“空响应”错误?
- javascript - 为什么我的 javascript 函数总是返回 undefined?
- discord.py - 一个如果需要这些权限 discord py
- python - 使用带有 VSC 的时间模块延迟文本打印会导致在一段时间后打印全文而不是一个一个地打印每个字符?
- spring-boot - SpringData JPA - JDBC 类型没有方言映射:2003
- node.js - 猫鼬模式结构
- html - 破折号中的自定义 HTML
- android - 已设置应用内购买测试,但不允许实际购买订阅
- java - 使用 Java 在真实对象中注册模拟对象
- sql - 在 Rails 数据库中存储和稍后访问 JSON 对象的最佳实践