【问题标题】:Unable to locate package python-pip Ubuntu 20.04无法找到包 python-pip Ubuntu 20.04
【发布时间】:2020-09-10 20:05:03
【问题描述】:

我正在尝试安装 mininet-wifi。下载后,我一直使用以下命令安装它:

    sudo util/install.sh -Wlnfv

但是,我不断收到错误消息:

    E: Unable to locate package python-pip

我已经多次尝试下载 python-pip。我知道 mininet-wifi 使用 python 2 而不是 python 3。我尝试使用以下命令下载 python-pip:

    sudo apt-get install python-pip

但这会导致同样的错误:

    E: Unable to locate package python-pip

【问题讨论】:

  • 最好将此报告为针对 mininet-wifi 的错误。 Python 2 在今年年初就终止了。它不会收到任何进一步的错误或安全修复。项目现在应该使用 Python 3。
  • 尝试存储库宇宙:stackoverflow.com/a/55423104/7976758
  • Mininet-WiFi 支持 Python3。这似乎是内部包的问题,​​而不是其他任何事情。值得一提的是,Ubuntu 20.04 不再(本机)支持 Python2。所以你可能想安装 pip3。除非有充分的理由使用 Python2...

标签: python python-2.7 ubuntu pip ubuntu-20.04


【解决方案1】:

适用于 Python 2 的 Pip 不包含在 Ubuntu 20.04 存储库中。
您需要使用 get-pip.py 脚本为 Python 2 安装 pip。


1.首先启用 Universe 存储库:

sudo add-apt-repository universe

2.更新包索引并安装 Python 2:

sudo apt update 
sudo apt install python2

3.使用 curl 下载 get-pip.py 脚本:

curl https://bootstrap.pypa.io/get-pip.py --output get-pip.py

4.启用存储库后,以 sudo 用户身份使用 python2 运行脚本以安装 pip:

sudo python2 get-pip.py

如果出现错误,作为后备,可以使用具体2.7版本的get-pip.py:

curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py


Pip 将被全局安装。如果您只想为您的用户安装它,请运行不带 sudo 的命令。该脚本还将安装 setuptools 和 wheel,允许您安装源代码分发版

通过打印 pip 版本号来验证安装:

pip2 --version

输出将如下所示:

 pip 20.0.2 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7)

【讨论】:

  • 这是一个很好的解决方案。谢谢。我遇到了您提到的“如果发生错误”的错误。我认为问题在于在 Ubuntu 20 中使用 python2.7。
  • 它不工作! root@farm:~# python --version Python 2.7.18 root@farm:~# python ./get-pip.py Traceback (most recent call last): File "./get-pip.py", line 24244, in <module> main() File "./get-pip.py", line 199, in main bootstrap(tmpdir=tmpdir) File "./get-pip.py", line 82, in bootstrap from pip._internal.cli.main import main as pip_entry_point File "/tmp/tmpc8gemv/pip.zip/pip/_internal/cli/main.py", line 60 sys.stderr.write(f"ERROR: {exc}") ^ SyntaxError: invalid syntax
  • @a0s 使用curl https://bootstrap.pypa.io/2.7/get-pip.py --output get-pip.py,如果您遇到错误,请在答案中说明。
  • 完成以上所有命令。在我的情况下 pip3 已经安装但错误仍然存​​在
【解决方案2】:

由于 Python 2 已结束生命周期,因此 20.04 中包含的 Python2 软件包很少。您必须手动为 Python 2 安装 pip

首先,安装 Python 2:

sudo apt install python2

然后,关注https://pip.pypa.io/en/stable/installing/,使用python2

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python2 get-pip.py

您可以使用sudo 运行第二步。如果您不使用sudo,则需要按照安装消息的建议更改PATH。或者,可能更好(因为它不会改变PATH),使用

python2 -m pip

只要你需要 pip2。

【讨论】:

    【解决方案3】:

    在我的例子中,用于下载 get-pip.py 的 curl 命令在运行 sudo python get-pip.py 时出现语法错误。

    但是通过访问https://bootstrap.pypa.io/ 手动下载并下载get-pip.py 对我来说效果很好。

    【讨论】:

    • 谢谢,遇到了同样的问题。我认为在 2021 年 1 月之后人们会遇到这个问题
    【解决方案4】:

    我发现为 Python 2.7 安装创建 virtualenv 也会安装 pip

    $ virtualenv -p python2 venv
    $ . venv/bin/activate
    $ pip --version
    pip 20.0.2 from /home/.../venv/lib/python2.7/site-packages/pip (python 2.7)
    

    【讨论】:

    • 在我看来它只安装在虚拟环境中,不是吗?
    【解决方案5】:

    python3 代替${PYPKG} 放在mininet-wifi 的文件install.sh 的第202 行,而不是将python-pip 放在第596 行。

    【讨论】:

      【解决方案6】:

      解决问题:

      E: Unable to locate package python-pip
      

      运行包更新索引cmd:

      sudo apt update
      

      如果不是这样,那么 python-pip-whl(它也是一个软件包安装程序)在 universe 存储库中可用,请确保已安装然后运行:

      sudo apt-get install python-pip-whl
      

      【讨论】:

      【解决方案7】:

      我特别需要一个 Dockerfile 文件,这是我放入其中的内容,以便它可以正常工作,我希望它会对某人有所帮助。

      这是 Dockerfile 文件:

      FROM ubuntu:latest
      RUN apt-get update -y
      RUN apt-get install -y python3 python3-dev
      WORKDIR /app
      COPY .  /app
      ENV DEBUG=True
      EXPOSE 80
      

      【讨论】:

      • 我可能误解了:你确定这能回答问题吗?
      猜你喜欢
      • 2022-01-20
      • 2020-08-21
      • 2019-08-20
      • 2020-08-25
      • 2020-08-29
      • 2020-11-27
      • 2021-01-28
      • 2020-09-19
      相关资源
      最近更新 更多