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

时间:2018-06-13 18:46:23

标签: python python-3.x intellij-idea subprocess

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

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

我收到以下错误:

  

'pip'未被识别为内部或外部命令,   可操作程序或批处理文件。

我已尝试将系统环境传递给

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

但仍然没有运气。 我使用get-pip.py

在我的Windows机器上安装了pip

3 个答案:

答案 0 :(得分:0)

如果CreateProcesssubproces.run调用)无法将pip识别为命令,它可能会识别python?所以你可以这样做:subprocess.run(['python3', '-m', 'pip'])也许?

答案 1 :(得分:0)

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

答案 2 :(得分:0)

在Windows上,pip不一定在PATH环境变量中,因此pip的简单运行可能找不到它。

如果当前运行的Python中安装了pip,您应该可以导入其模块:

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])