使用 pip 安装特定版本的软件包

2024-12-04 08:56:00
admin
原创
144
摘要:问题描述:我正在尝试MySQL_python使用通过选项创建的新虚拟环境安装 1.2.2 版本--no-site-packages。PyPi 中显示的当前版本是1.2.3。有没有办法安装旧版本?我试过:pip install MySQL_python==1.2.2 但是,安装后,它仍然显示MySQL_pyth...

问题描述:

我正在尝试MySQL_python使用通过选项创建的新虚拟环境安装 1.2.2 版本--no-site-packages。PyPi 中显示的当前版本是1.2.3。有没有办法安装旧版本?我试过:

pip install MySQL_python==1.2.2

但是,安装后,它仍然显示MySQL_python-1.2.3-py2.6.egg-info在站点包中。这是该包特有的问题吗,还是我做错了什么?


解决方案 1:

总结

截至 2022-12-28 的更新

pip install --force-reinstall -v

例如:pip install --force-reinstall -v "MySQL_python==1.2.2"

这些选项的含义:

  • --force-reinstall即使所有软件包已经是最新的,也可以选择重新安装它们。

  • -v表示详细。您可以组合使用更详细的内容(即-vv),最多可组合 3 次(例如--force-reinstall -vvv)。

感谢@Peter强调这一点(并且似乎问题的背景已经扩大到首次提出问题的时间!),Python 文档讨论了使用时的一个注意事项-I,即如果它是使用不同的包管理器安装的,或者如果您的包是/曾经是不同的版本,它可能会破坏您的安装。


原始答案:

  • pip install -Iv(IE pip install -Iv MySQL_python==1.2.2


这些选项的含义:

  • -I代表--ignore-installed将忽略已安装的包并覆盖它们。

  • -v表示详细。您可以组合使用更详细的内容(即-vv),最多可组合 3 次(例如-Ivvv)。

有关详细信息,请参阅For more information, seepip install --help

首先,我发现你尝试执行的操作存在两个问题。由于你已经安装了版本,因此你应该卸载当前现有的驱动程序或使用pip install -I MySQL_python==1.2.2

但是,您很快就会发现这不起作用。如果您查看 pip 的安装日志,或者如果您执行了,pip install -Iv MySQL_python==1.2.2您会发现 PyPI URL 链接不适用于 MySQL_python v1.2.2。您可以在此处验证这一点: http: //pypi.python.org/pypi/MySQL-python/1.2.2

由于 sourceforge.net 最近的升级和 PyPI 的陈旧 URL,下载链接 404 和后备 URL 链接无限重定向。

因此,要正确安装驱动程序,您可以按照以下步骤操作:

pip uninstall MySQL_python
pip install -Iv http://sourceforge.net/projects/mysql-python/files/mysql-python/1.2.2/MySQL-python-1.2.2.tar.gz/download

解决方案 2:

你甚至可以使用命令来指定版本范围pip install。像这样:

pip install 'stevedore>=1.3.0,<1.4.0'

如果该软件包已经安装,而您想降级它,请添加--force-reinstall如下内容:

pip install 'stevedore>=1.3.0,<1.4.0' --force-reinstall

解决方案 3:

正如这篇文章所建议的,一种方法是在以下位置提及版本pip

pip install -Iv MySQL_python==1.2.2

即使用==并提及版本号仅安装该版本。-I, --ignore-installed忽略已安装的软件包。

解决方案 4:

要安装特定的 Python 包版本(无论是第一次、升级还是降级),请使用:

pip install --force-reinstall MySQL_python==1.2.4

MySQL_python 版本 1.2.2 不可用,因此我使用了其他版本。要从索引中查看所有可用的软件包版本,请排除该版本:

pip install MySQL_python==

解决方案 5:

我相信如果你已经安装了包,pip 将不会用另一个版本覆盖它。用于-I忽略以前的版本。

解决方案 6:

有时,以前安装的版本会被缓存。

~$ pip install pillow==5.2.0

它返回以下内容:

要求已满足:/home/ubuntu/anaconda3/lib/python3.6/site-packages 中的 pill==5.2.0(5.2.0)

我们可以将 --no-cache-dir 与 -I 一起使用来覆盖它

~$ pip install --no-cache-dir -I pillow==5.2.0

解决方案 7:

由于这似乎是 pip 版本 10 中引入的重大变化,因此我降级到了兼容版本:

pip install 'pip<10' 

此命令告诉 pip 安装低于版本 10 的模块版本。在virutalenv中执行此操作,这样您就不会搞砸 Python 的站点安装。

解决方案 8:

下面的命令对我有用

Python 版本 - 2.7

软件包 - python-jenkins

命令 -$ pip install 'python-jenkins>=1.1.1'

解决方案 9:

pip我最近在使用标志时遇到了一个问题-I,我想将其记录在某处:

-I在继续之前不会卸载现有包;它只会将其安装在旧包之上。这意味着版本之间应删除的任何文件都将保留在原处。如果这些文件与其他已安装的模块共享名称,则可能会导致奇怪的行为。

例如,假设有一个名为的包package。在其中一个package文件中,他们使用import datetime。现在,在中package@2.0.0,这指向标准库datetime模块,但在中package@3.0.0,他们添加了本地datetime.py作为标准库版本的替代(无论出于何种原因)。

现在假设我运行pip install package==3.0.0,但后来意识到我实际上想要的是 版本2.0.0。如果我现在运行pip install -I package==2.0.0datetime.py文件将不会被删除,因此任何对 的调用import datetime都会导入错误的模块。

就我而言,这表现为奇怪的语法错误,因为包的新版本添加了一个仅与 Python 3 兼容的文件,当我降级包版本以支持 Python 2 时,我继续导入仅适用于 Python 3 的模块。

基于此,我认为卸载旧软件包总是比-I更新已安装的软件包版本更好。

解决方案 10:

有两种方法可以安装任何具有版本的软件包:-
A). pip install -Iv package-name == version
B). pip install -v package-name == version

对于

在这里,如果您在安装时使用 -I 选项(当您不知道该包是否已安装时)(例如“pip install -Iv pyreadline == 2.*”或其他内容),那么您将安装一个与现有包不同但版本相同的新单独包。

对于 B

  1. 首先,你可能想检查一下是否有损坏的要求。pip
    check

2.然后通过pip list查看已经安装了什么

3.如果软件包列表包含您希望安装的特定版本的任何软件包,那么更好的选择是先通过
pip uninstall package-name卸载此版本的软件包

4.现在,您可以继续重新安装具有特定版本的同一软件包,通过
pip install -v package-name==version,
例如 pip install -v pyreadline == 2.*

解决方案 11:

如果您想更新到最新版本但又不知道最新版本是什么,您可以输入。

pip 安装 MySQL_python --upgrade

这将更新 MySQL_python 以获得最新版本,您可以将其用于任何其他软件包版本。

解决方案 12:

依赖项打包已经有了一个新的版本,其中它从其代码库中删除了 LegacyVersion

快速解决方案可能是 pin packaging==21.3

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   1565  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1354  
  信创国产芯片作为信息技术创新的核心领域,对于推动国家自主可控生态建设具有至关重要的意义。在全球科技竞争日益激烈的背景下,实现信息技术的自主可控,摆脱对国外技术的依赖,已成为保障国家信息安全和产业可持续发展的关键。国产芯片作为信创产业的基石,其发展水平直接影响着整个信创生态的构建与完善。通过不断提升国产芯片的技术实力、产...
国产信创系统   21  
  信创生态建设旨在实现信息技术领域的自主创新和安全可控,涵盖了从硬件到软件的全产业链。随着数字化转型的加速,信创生态建设的重要性日益凸显,它不仅关乎国家的信息安全,更是推动产业升级和经济高质量发展的关键力量。然而,在推进信创生态建设的过程中,面临着诸多复杂且严峻的挑战,需要深入剖析并寻找切实可行的解决方案。技术创新难题技...
信创操作系统   27  
  信创产业作为国家信息技术创新发展的重要领域,对于保障国家信息安全、推动产业升级具有关键意义。而国产芯片作为信创产业的核心基石,其研发进展备受关注。在信创国产芯片的研发征程中,面临着诸多复杂且艰巨的难点,这些难点犹如一道道关卡,阻碍着国产芯片的快速发展。然而,科研人员和相关企业并未退缩,积极探索并提出了一系列切实可行的解...
国产化替代产品目录   28  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用