使用 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 。这是这个包特有的问题,还是我做错了什么?

原文由 Joe 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 343
2 个回答

长话短说

截至 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 (即 pip install -Iv MySQL_python==1.2.2

这些选项的含义:

  • -I 代表 --ignore-installed 将忽略已安装的包,覆盖它们。
  • -v 用于详细说明。您可以组合更多的详细信息(即 -vv )最多 3 次(例如 -Ivvv )。

有关详细信息,请参阅 pip 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,下载链接 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

原文由 Mahmoud Abdelkader 发布,翻译遵循 CC BY-SA 4.0 许可协议

您甚至可以使用 pip install 命令的版本范围。是这样的:

 pip install 'stevedore>=1.3.0,<1.4.0'

如果软件包已经安装并且你想降级它添加 --force-reinstall 像这样:

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

原文由 user1978556 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题