【问题标题】:Why runs 'pip' as Python 3 module but not as script?为什么将“pip”作为 Python 3 模块而不是作为脚本运行?
【发布时间】:2016-06-02 10:15:01
【问题描述】:

我安装了 Python 3.5 附带的 Lubuntu 16.04 LTS,但 Python 2.7 作为默认 Python 解释器。
两个版本都没有安装pip 包。我只会使用 3.5 版本。所以我安装了pip3

$ sudo apt-get install python3-pip

然后我尝试更新 pip 版本(因为 Ubuntu 存储库有旧版本): $ pip3 安装--升级 pip3 但是pip3 找不到pip3 包,给我发了这条消息:

收集 pip3
找不到满足的版本 要求 pip3(来自版本:)没有找到匹配的分布 点子3

在那之后,我尝试了另一个:

$ pip3 intall --upgrade pip

它从 pip 8.1.1 更新到 pip 8.1.2

来自 /home/trimax/.local/lib/python3.5/site-packages 的 pip 8.1.2 (python 3.5)

如果我试试这个:

$ pip -V

没用:

当前未安装程序“pip”。您可以通过以下方式安装它 输入:sudo apt-get install python-pip

但如果我试试这个:

$ python3 -m pip -V

有效:

来自 /home/trimax/.local/lib/python3.5/site-packages 的 pip 8.1.2 (python 3.5)

问题是为什么将pip 作为模块而不是作为脚本运行?

【问题讨论】:

  • 这行得通吗? $ pip3 -v
  • 因为pip 在您的系统上从未别名为pip3。通常,pip 指的是 Python 2 的 pip,但显然没有安装。如果您愿意,可以为 pip 创建自己的符号链接。
  • 实际上,/home/trimax/.local/bin/ 中可能安装了一个 pip 可执行文件,但该目录不在您的路径中。请注意,此路径意味着您在某处使用了 --user(在升级中?),但我没有看到您的问题中提到这一点。

标签: python python-3.x ubuntu pip


【解决方案1】:

pip3 实际上是 python3 的 pip 包。由于python2和python3都可以共存,所以3.5的pip包重命名为pip3以避免冲突。 (由包管理器)。

任何包的升级语法都是

<script_name_for_pip> install --upgrade <package_name>

包名在pipy中是pip。这证明了为什么您必须提供 pip 作为包名并且NOT pip3

  • pip -v 不起作用,因为 pip 可执行文件不存在。

有点相关说明,您也可以使用以下内容升级 pip 或任何软件包。

easy_install-3.5 -U pip  

【讨论】:

    【解决方案2】:

    PEP 394 描述了 Python 二进制文件的命名,根据它的建议,您在系统中有 pip3,因为 pip 是为 Python 2.x pip 保留的。

    当然你可以将pip 别名为pip3,但不建议这样做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-19
      • 2021-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多