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

pip install MySQL_python==1.2.2

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


当前回答

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

pip安装MySQL_python--升级

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

其他回答

有两种方法可以安装版本为的任何软件包:-A) 。pip安装-Iv包名称==版本B) 。pip安装-v包名称==版本

对于A

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

对于B

首先,您可能需要检查是否没有违反要求。管道检查

2.然后查看已安装的pip列表

3.如果软件包列表中包含您希望使用特定版本安装的任何软件包,则更好的选择是先卸载此版本的软件包,方法是:pip卸载包名称

4.现在,您可以继续使用特定版本重新安装相同的软件包pip安装-v包名称==版本例如pip-install-vpyreadline==2*

TL;博士:

截至2022-12-28年更新:

pip install—强制重新安装-v

例如:pip-install--force-restall-v“MySQL_python==1.2.2”

这些选项意味着什么:

--强制重新安装是重新安装所有软件包的选项,即使它们已经是最新的。-v表示verbose。您可以组合使用更详细的内容(例如-vv),最多可以使用3次(例如--force-restall-vvv)。

感谢@Peter强调了这一点(考虑到第一次提出这个问题的时间,问题的背景似乎已经扩大了!),Python文档讨论了使用-I的警告,因为如果安装了不同的包管理器,或者如果您的包是不同的版本,它可能会破坏您的安装。


原答覆:

pip install-Iv(即pip install-Iv MySQL_python==1.2.2)


这些选项意味着什么:

-我代表--ignore installed,它将忽略已安装的包,覆盖它们。-v表示verbose。您可以组合使用更详细的内容(例如-vv),最多3次(例如-Ivvv)。

有关详细信息,请参阅pipinstall--help

首先,我发现您尝试做的事情有两个问题。由于您已经安装了一个版本,您应该卸载当前现有的驱动程序或使用pip install-I MySQL_python==1.2.2

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

由于sourceforge.net最近的升级和PyPI的陈旧URL,下载链接404s和回退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

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

您甚至可以使用pipinstall命令的版本范围。类似于:

pip install 'stevedore>=1.3.0,<1.4.0'

如果软件包已经安装,并且您希望降级,请添加--强制重新安装,如下所示:

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

依赖打包有了一个新版本,它从代码库中删除了LegacyVersion快速解决方案可能是引脚封装==21.3