【问题标题】:Checking whether pip is installed?检查是否安装了pip?
【发布时间】:2017-04-13 14:16:07
【问题描述】:

我正在使用Python 2.7.12,我想检查是否安装了 pip。为此,在 Python 应用程序的命令行中,我编写了 pip list 并按下回车键。但是,我收到如下错误:

File"stdin",line 1

pip list

Syntax Error: invalid syntax

那么,我该如何解决这个问题并将模块列表作为输出?

谢谢

【问题讨论】:

  • 你在 python 解释器上运行 pip 吗? pip 直接在 windows 命令提示符或 linux/mac 的终端上运行,而不是在 python 提示符下运行。

标签: python python-2.7 pip syntax-error


【解决方案1】:

使用 命令行 而不是 python。
TLDR;在 Windows 上,执行:
python -m pip --version

py -m pip --version

详情:

在 Windows 上,~>(打开 Windows 终端)
Start (or Windows Key) > type "cmd" Press Enter
您应该会看到如下所示的屏幕
检查是否安装了 pip。

python -m pip --version

如果安装了 pip,请继续使用它。例如:

Z:\>python -m pip install selenium

如果未安装,请安装 pip,您可能需要
add its path to the environment variables
(基本 - windows)
add path to environment variables(基本+高级)

如果没有安装 python,你会得到类似于下面的结果

安装python。将其路径添加到环境变量中。

更新:对于较新版本的 python 用 py 替换 "python" - 请参阅 @gimmegimme 的评论和链接 https://packaging.python.org/guides/installing-using-pip-and-virtual-environments/

【讨论】:

【解决方案2】:
$ which pip

 $ pip -V 

在您的终端中执行此命令。它应该显示可执行文件的位置,例如。 /usr/local/bin/pip 如果 pip 安装正确,第二个命令将显示版本。

【讨论】:

  • 在哪里输入命令?在笔记本中,cmd(Anaconda 还是 Windows)?
【解决方案3】:

如果您在运行 Python 2 的 linux 机器上,您可以运行以下命令:

首先确保安装了 python 2:

python2 --version

第二次检查是否安装了 pip:

pip --version

如果您运行的是 Python 3,则可以运行以下命令:

首先确保安装了 python 3:

python3 --version

第二次检查是否安装了 pip3:

pip3 --version

如果您没有安装 pip,您可以运行这些命令来安装 pip(建议您为 Python 2 和 Python 3 安装 pip):

为 Python 2 安装 pip:

sudo apt install python-pip

然后验证是否安装正确:

pip --version

为 Python 3 安装 pip:

sudo apt install python3-pip

然后验证是否安装正确:

pip3 --version

欲了解更多信息,请参阅:https://itsfoss.com/install-pip-ubuntu/

更新 我想提几点。在使用 Django 时,我了解到我的 Linux 安装需要我使用 python 2.7,因此不建议将我的默认 python 版本用于pythonpip 命令别名切换到带有alias python=python3 的 python 3。因此,我在安装 Django 3.0 之类的软件时使用python3pip3 命令,它与 Python 3 配合得更好。我将它们的别名指向我想要的任何 Python 3 版本,所以alias python3=python3.8

记住 当您将来要使用您的软件包时,您将需要使用 pippip3 命令,具体取决于您最初安装软件包时使用的命令。因此,例如,如果我想更改我的 Django 包版本,我会使用 pip3 命令而不是 pip 像这样,pip3 install Django==3.0.11

通知 运行检查 python:$ python -m django --version 和 python3:$ python3 -m django --version 的包版本时,将显示两个不同版本的 django,因为我安装了带有 pip3 的 django v3.0.11 和带有 pip 的 django v1.11.29。

【讨论】:

    【解决方案4】:

    pip list 是一个 shell 命令。你应该在你的 shell (bash/cmd) 中运行它,而不是从 python 解释器中调用它。

    pip 不提供稳定的 API。唯一支持的调用方式是通过subprocess,请参阅docs 和此答案末尾的代码。

    但是,如果您只想检查pip 是否在本地存在,而不运行它,并且您正在运行Linux,我建议您使用bash 的which 命令:

    which pip
    

    它应该显示该命令是否可以在 bash 的 PATH/aliases 中找到,如果可以,它实际执行的是什么。

    如果运行 pip 不是问题,您可以这样做:

    python -m pip --version
    

    如果您确实需要从 python 脚本中执行此操作,您可以随时将 import 语句放入 try...except 块中:

    try:
        import pip
    except ImportError:
        print("Pip not present.")
    

    或者使用subprocess 模块检查pip --version 的输出:

    subprocess.check_call([sys.executable, '-m', 'pip', '--version'])
    

    【讨论】:

      【解决方案5】:

      您需要在 bash 中而不是在 python 中运行 pip list

      pip list
      DEPRECATION: Python 2.6 is no longer supported by the Python core team, please upgrade your Python. A future version of pip will drop support for Python 2.6
      argparse (1.4.0)
      Beaker (1.3.1)
      cas (0.15)
      cups (1.0)
      cupshelpers (1.0)
      decorator (3.0.1)
      distribute (0.6.10)
      ---and other modules
      

      【讨论】:

        【解决方案6】:

        在 CMD 中,输入:

        pip freeze
        

        它会显示所有已安装模块的列表,包括版本号。

        输出:

        aiohttp==1.1.4
        async-timeout==1.1.0
        cx-Freeze==4.3.4
        Django==1.9.2
        django-allauth==0.24.1
        django-cors-headers==1.2.2
        django-crispy-forms==1.6.0
        django-robots==2.0
        djangorestframework==3.3.2
        easygui==0.98.0
        future==0.16.0
        httpie==0.9.6
        matplotlib==1.5.3
        multidict==2.1.2
        numpy==1.11.2
        oauthlib==1.0.3
        pandas==0.19.1
        pefile==2016.3.28
        pygame==1.9.2b1
        Pygments==2.1.3
        PyInstaller==3.2
        pyparsing==2.1.10
        pypiwin32==219
        PyQt5==5.7
        pytz==2016.7
        requests==2.9.1
        requests-oauthlib==0.6
        six==1.10.0
        sympy==1.0
        virtualenv==15.0.3
        xlrd==1.0.0
        yarl==0.7.0
        

        【讨论】:

        • OP 还说“获取模块列表作为输出”
        • 哦,我的错。对不起。
        • 这将显示已安装的软件包,如果没有软件包,则不会显示任何内容
        猜你喜欢
        • 1970-01-01
        • 2021-11-23
        • 2012-03-28
        • 1970-01-01
        • 2013-03-23
        • 2010-11-06
        • 2020-10-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多