协慌网

登录 贡献 社区

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

我正在尝试安装 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 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,下载链接 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 install命令的版本范围。像这样的东西:

pip install 'stevedore>=1.3.0,<1.4.0'

如果软件包已经安装并且您想要降级它,请添加--force-reinstall如下所示:

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

在建议的一种方式这篇文章是提版本pip作为

pip install -Iv MySQL_python==1.2.2

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