Вопрос-Ответ

Installing specific package version with pip

Установка определенной версии пакета с помощью pip

Я пытаюсь установить версию 1.2.2 MySQL_python, используя свежий virtualenv, созданный с помощью --no-site-packages опции. Текущая версия, показанная в PyPI, - 1.2.3. Есть ли способ установить более старую версию? Я пробовал:

pip install MySQL_python==1.2.2

Однако после установки он по-прежнему отображается MySQL_python-1.2.3-py2.6.egg-info в пакетах сайта. Это проблема, специфичная для этого пакета, или я делаю что-то не так?

Переведено автоматически
Ответ 1

TL; DR:

Обновление от 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 вы обнаружите, что URL-ссылка PyPI не работает для MySQL_python версии v1.2.2 . Вы можете убедиться в этом здесь: http://pypi.python.org/pypi/MySQL-python/1.2.2

Ссылка для загрузки 404s и резервные URL-ссылки бесконечно перенаправляются из-за sourceforge.Недавнее обновление net и устаревший URL-адрес PyPI.

Итак, чтобы правильно установить драйвер, вы можете выполнить следующие действия:

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==
python pip