Установка определенных версий пакета с помощью 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 в пакетах сайтов. Является ли это проблемой, специфичной для этого пакета, или я делаю что-то неправильно?

929
задан 08 марта '11 в 1:58
источник поделиться
7 ответов

Во-первых, я вижу две проблемы с тем, что вы пытаетесь сделать. Поскольку у вас уже установлена ​​установленная версия, вам необходимо либо удалить текущий существующий драйвер, либо использовать pip install -I MySQL_python==1.2.2

Однако вы скоро узнаете, что это не работает. Если вы посмотрите на журнал установки протокола, или если вы выполните 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
669
ответ дан 08 марта '11 в 2:18
источник

Вы даже можете использовать диапазон версий с помощью команды pip install. Что-то вроде этого:

pip install 'stevedore>=1.3.0,<1.4.0'

И если пакет уже установлен, и вы хотите понизить его --force-reinstall добавьте --force-reinstall следующим образом:

pip install 'stevedore>=1.3.0,<1.4.0' --force-reinstall
315
ответ дан 19 нояб. '15 в 22:42
источник

Один из способов, предложенный в этом сообщении, должен указать версию в pip как

pip install -Iv MySQL_python==1.2.2

то есть. Используйте == и укажите номер версии для установки только этой версии. -I, --ignore-installed игнорирует уже установленные пакеты.

102
ответ дан 04 апр. '16 в 12:58
источник

Я считаю, что если у вас уже установлен пакет, пип не перезапишет его другой версией. Используйте -I, чтобы игнорировать предыдущие версии.

35
ответ дан 08 марта '11 в 2:13
источник

Чтобы установить конкретную версию пакета Python, будь то первый раз, обновление или переход на более раннюю версию:

pip install --force-reinstall MySQL_python==1.2.4

MySQL_python версии 1.2.2 недоступен, поэтому я использовал другую версию. Для просмотра всех доступных версий пакета из индекса исключите версию:

pip install MySQL_python==
31
ответ дан 05 апр. '18 в 10:00
источник

Поскольку в версии 10 pip это явное изменение, я понизил его до совместимой версии:

pip install 'pip<10' 

Эта команда указывает pip установить версию модуля ниже версии 10. Сделайте это в virutalenv, чтобы не испортить установку Python на своем сайте.

3
ответ дан 02 сент. '18 в 3:54
источник

Есть два способа установить любой пакет с версией: - A). pip install -Iv имя пакета == версия B). pip install -v имя-пакета == версия

Для

Здесь, если вы используете опцию -I во время установки (когда вы не знаете, установлен ли пакет) (например, 'pip install -Iv pyreadline == 2. *' или что-то еще), вы будете устанавливать новый отдельный пакет с тем же существующим пакетом, имеющим другую версию.

Для Б

  1. Во-первых, вы можете проверить отсутствие нарушенных требований. чек

2.и тогда посмотрим, что уже установлено по пипсу

3.Если список пакетов содержит какой-либо пакет, который вы хотите установить с определенной версией, тогда лучшим вариантом будет сначала удалить пакет этой версии, используя pip uninstall package-name

4. А теперь вы можете переустановить тот же пакет с определенной версией, установив pip -v имя_пакета == версия, например, pip install -v pyreadline == 2. *

0
ответ дан 12 нояб. '18 в 9:14
источник

Другие вопросы по меткам или Задайте вопрос