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

Комментарии к вопросу (3)
Решение

Во-первых, я вижу две проблемы в том, что вы пытаетесь сделать. Поскольку у вас уже есть установленная версия, вам следует либо удалить существующий драйвер, либо использовать 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

Ссылка на скачивание 404, а резервные 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
Комментарии (6)

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


pip install 'stevedore>=1.3.0,
Комментарии (6)

Один из способов, как предложено в этот пост, - упомянуть версию в «pip» как

pip install -Iv MySQL_python == 1.2.2

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

Комментарии (1)

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

pip install --force-reinstall MySQL_python==1.2.4

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

pip install MySQL_python==
Комментарии (1)

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

Комментарии (3)

Иногда ранее установленная версия кэшируется.

~$ pip install pillow==5.2.0

Возвращает следующее: Требование уже выполнено: подушка == 5.2.0 в / home / ubuntu / anaconda3 / lib / python3.6 / site-packages (5.2.0)

Мы можем использовать --no-cache-dir вместе с -I, чтобы перезаписать это

~$ pip install --no-cache-dir -I pillow==5.2.0
Комментарии (0)

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


pip install 'pip
Комментарии (0)

Недавно я столкнулся с проблемой при использовании флага pip``-I`, который я хотел где-то задокументировать:

-I не * удалит существующий пакет, прежде чем продолжить; он просто установит его поверх старого. Это означает, что любые файлы, которые должны быть удалены между версиями, будут оставлены на месте. Это может вызвать странное поведение, если эти файлы совместно используют имена с другими установленными модулями.

Например, допустим, есть пакет с именем «пакет». В одном из файлов packages они используют 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 при обновлении установленных версий пакета.

Комментарии (0)

Эта команда ниже работала на меня

Версия Python - 2.7

пакет - питон-Дженкинс

команда - $ pip install 'python-jenkins > = 1.1.1'

Комментарии (0)

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

Для А

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

Для Б

  1. Сначала вы можете проверить, не нарушены ли требования. проверка пипа

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

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

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

Комментарии (0)

Если вы хотите обновить до последней версии и не знаете, какую последнюю версию вы можете ввести.

pip install MySQL_python --upgrade

Это обновит MySQL_python для последней доступной версии, которую вы можете использовать для любой другой версии пакета.

Комментарии (0)