[在Python子进程中调用pip时出现FileNotFoundError

问题描述 投票:0回答:1

我需要运行一些从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 +。

python shell subprocess popen
1个回答
0
投票

我还没有在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"]
© www.soinside.com 2019 - 2024. All rights reserved.