【问题标题】:Can I force pip to reinstall the current version?我可以强制 pip 重新安装当前版本吗?
【发布时间】:2013-11-02 03:48:09
【问题描述】:

我遇到过当前版本的软件包似乎无法正常工作并需要重新安装的情况。但是pip install -U 不会触及已经是最新的包。我知道如何通过首先卸载(使用pip uninstall)然后安装来强制重新安装,但是有没有办法在一个步骤中简单地强制“更新”到名义上的当前版本?

【问题讨论】:

  • 对于那些希望自己重新安装 pip 的人(如果它由于某种原因停止工作;)),答案可以在this SO q&a中找到

标签: python pip packages


【解决方案1】:

如果您需要强制重新安装 pip 本身,您可以这样做:

python -m pip install --upgrade --force-reinstall pip

【讨论】:

    【解决方案2】:
    sudo pip3 install --upgrade --force-reinstall --no-deps --no-cache-dir <package-name>==<package-version>
    

    一些相关的答案:

    Difference between pip install options "ignore-installed" and "force-reinstall"

    【讨论】:

      【解决方案3】:

      如果你有一个包含大量包的文本文件,你需要添加 -r 标志

      pip install --upgrade --no-deps --force-reinstall -r requirements.txt
      

      【讨论】:

        【解决方案4】:
        pip install --upgrade --force-reinstall <package>
        

        升级时,重新安装所有软件包,即使它们已经是最新的。

        pip install -I <package>
        pip install --ignore-installed <package>
        

        忽略已安装的软件包(而是重新安装)。

        【讨论】:

        • 使用 --target= 标志时有什么方法可以强制覆盖?这些都不适合我。我得到目标路径已经存在错误。
        • @mrgloom using cachedjust 表示它使用上次安装时缓存的源文件。要强制重新下载,请使用 --no-cache-dir 标志。
        • pip install -U,简称。 (并且--force-reinstall 选项很少需要)
        • 请注意,此命令还会重新安装所有依赖项。添加 --no-deps 以避免这种情况,如下面 Finn 的回答中所建议的那样。
        • 这不适用于更新 pip 本身
        【解决方案5】:

        如果您想重新安装 requirements.txt 文件中指定的软件包而不升级,那么只需重新安装 requirements.txt 文件中指定的特定版本:

        pip install -r requirements.txt --ignore-installed
        

        【讨论】:

        • 如果你想避免使用本地缓存,添加选项--no-cache-dir
        【解决方案6】:

        您可能希望拥有所有三个选项:--upgrade--force-reinstall 确保重新安装,而 --no-deps 避免重新安装依赖项。

        $ sudo pip install --upgrade --no-deps --force-reinstall <packagename>
        

        否则你可能会遇到 pip 开始重新编译 Numpy 或其他大包的问题。

        【讨论】:

        • 这也适用于离线安装,而例外答案则不适用。
        • 这对于有大量不需要重新安装的依赖包的包来说是一个更好的解决方案。
        • sudo 对我来说至关重要。
        • 为什么我们在使用--force-reinstall时需要--upgrade
        • macOS:您不应该在 mac 上使用 pip 运行 sudo 。以管理员权限用户身份运行,但没有 sudo 。在 Linux (Ubuntu) 上:使用sudo 为所有用户安装是有意义的。不要使用 --user 运行 sudo,因为这只会在 root 用户下安装软件包。
        【解决方案7】:
        --force-reinstall
        

        使用带有 pip-1.5 的 python2.7 似乎不会强制重新安装

        我不得不使用

        --no-deps --ignore-installed
        

        【讨论】:

        • 必须在--force-reinstall之外指定--upgrade,否则起不到任何作用。
        猜你喜欢
        • 2020-02-16
        • 1970-01-01
        • 2018-11-10
        • 1970-01-01
        • 2017-03-19
        • 1970-01-01
        • 2018-10-23
        • 2019-03-30
        • 1970-01-01
        相关资源
        最近更新 更多