Intellij Idea 使用python子进程检查Windows上是否安装了pip

ymdaylpp  于 2022-12-17  发布在  Python
关注(0)|答案(4)|浏览(189)

我正在用python检查系统上是否安装了pip,我写的代码是:

subprocess.run(["pip"],shell=True)

我得到了以下错误:
“pip”未被识别为内部或外部命令、可操作程序或批处理文件。
我已尝试使用传递系统env以运行

env = os.environ.copy()
subprocess.run(["pip"],shell=True,env=env)

但还是没有运气。我用www.example.com在我的Windows机器上安装了pipget-pip.py

vcirk6k6

vcirk6k61#

如果CreateProcesssubproces.run调用的)不能识别pip作为命令,它可能会识别python?,因此您可以执行以下操作:可能是subprocess.run(['python3', '-m', 'pip'])

gdrx4gfi

gdrx4gfi2#

您需要将pip的安装路径添加到PATH系统变量中。键入echo $PATH$来检查它是否已经存在。

gzjq41n4

gzjq41n43#

在Windows上,pip不一定在PATH环境变量中,因此简单地运行pip可能找不到它。
如果pip安装在当前运行的Python中,你应该能够导入它的模块:

pip_present = True
try:
    import pip
except ImportError:
    pip_present = False

如果你想用subprocess来运行它,你可以用sys中的东西来获得它相对于当前运行的Python的位置:

pip_path = os.path.join(os.path.dirname(sys.executable), "Scripts", "pip.exe")
subprocess.run([pip_path])
kqlmhetl

kqlmhetl4#

您可以按如下方式检查命令的返回代码:

import sys
import subprocess

def pip_installed():
    pip_check = subprocess.run([sys.executable, "-m", "pip"])
    return not bool(pip_check.returncode)

这将检查returncode。如果returncode是0,这意味着pip已安装,并将返回True。对于任何其他值,它将返回False

相关问题