我需要运行一些从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 +。
答案 0 :(得分: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"]