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

这篇博客讨论了如何使用pip安装、升级或降级Python软件包到特定版本,特别是针对MySQL_python适配器1.2.2版本的问题。用户分享了各种命令,如`pip install package_name==version`,并警告了pip的某些行为,如在已安装版本上覆盖新版本可能导致的问题。还提到了sourceforge.net的更新导致的老版本下载链接问题。
摘要由CSDN通过智能技术生成

我正在尝试使用通过--no-site-packages选项创建的新virtualenv安装MySQL_python适配器的1.2.2版本。 PyPi中显示的当前版本是1.2.3 。 有没有办法安装旧版本? 我发现有一篇文章指出应该这样做:

pip install MySQL_python==1.2.2

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


#1楼

您甚至可以通过pip install命令使用版本范围。 像这样:

pip install 'stevedore>=1.3.0,<1.4.0'

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

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

#2楼

一种方法,在提出这个职位 ,是提版本pip为:

pip install -Iv MySQL_python==1.2.2

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


#3楼

要安装特定的python软件包版本,无论是第一次,升级还是降级,请使用:

pip install --force-reinstall MySQL_python==1.2.4

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

pip install MySQL_python==

#4楼

由于这似乎是pip版本10中引入的重大更改,因此我降级为兼容版本:

pip install 'pip<10' 

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


#5楼

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


#6楼

首先,我发现您要执行的操作有两个问题。 由于已经安装了版本,因此应该卸载当前现有的驱动程序或使用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

#7楼

您可以通过两种方式安装任何版本的软件包: -A)。 pip install -Iv软件包名称==版本 B)。 pip install -v软件包名称==版本

为一个

在这里,如果您在安装时使用-I选项(当您不知道软件包是否已安装时)(例如'pip install -Iv pyreadline == 2. *或类似的东西),则您将安装新的单独的程序包,而相同的现有程序包具有不同的版本。

对于B

  1. 首先,您可能要检查是否有违反要求的情况。 点子检查

2.然后查看点子列表已经安装了什么

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

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


#8楼

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

~$ pip install pillow==5.2.0

它返回以下内容:
已满足要求:/home/ubuntu/anaconda3/lib/python3.6/site-packages(5.2.0)中的pillow == 5.2.0

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

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

#9楼

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

-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.0则不会删除旧的datetime.py文件,因此任何import datetime调用都会导入错误的模块。

就我而言,这表现为奇怪的语法错误,因为该软件包的较新版本添加了仅与Python 3兼容的文件,并且当我将软件包版本降级以支持Python 2时,我继续导入仅Python-3模块。

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


#10楼

如果要更新为最新版本,但您不知道可以输入的是最新版本。

pip安装MySQL_python --upgrade

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


#11楼

下面的命令对我有用

Python版本-2.7

包-python-jenkins

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值