【问题标题】:FileNotFoundError when calling pip in Python subprocess在 Python 子进程中调用 pip 时出现 FileNotFoundError
【发布时间】:2020-03-16 00:35:40
【问题描述】:

我需要运行一些从 python 脚本调用 pip 的命令。 Pip 安装在我的机器上(运行 Ubuntu)。只需在终端中输入“pip”即可输出 pip 命令的帮助。

但是,尝试从 python 脚本调用 pip 会引发错误。 从脚本调用其他命令(例如“ls”)按预期工作(打印在终端中输入命令获得的输出)。

对于为什么这不起作用,我似乎无法取得任何进展,因此非常感谢任何帮助。 MWE 如下:

import subprocess

# Prints list of files in cwd
subprocess.Popen(["ls"])

# FileNotFoundError: [Errno 2] No such file or directory: 'pip': 'pip'
subprocess.Popen(["pip"])

编辑:似乎我用 Popen 调用的命令通常与我在提示符下运行它们时的行为不同。 例如运行'python --version'显示Python 3.7.4,但如果我这样做subprocess.Popen(["python", "--version"]) 我得到 Python 2.7.15+。

【问题讨论】:

  • 你能分享一下“whereis pip”的输出吗?
  • @4turkuaz /home//anaconda3/bin/pip

标签: python shell subprocess popen


【解决方案1】:

我还没有在 Ubuntu 上尝试过,但在 Windows 上也有类似的体验。

以下是否有效?

subprocess.Popen(["python"])

如果有,你可以试试

subprocess.Popen(["python", "m", "pip", "list"])

# or my case on windows
subprocess.Popen(["C:\Python27\ArcGIS10.5\python.exe", "-m", "pip", "list"]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-06
    • 2018-05-30
    • 2017-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-16
    • 1970-01-01
    相关资源
    最近更新 更多