Я'пытаюсь установить версию 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
. Это проблема, характерная только для этого пакета, или я что-то делаю не так?
Во-первых, я вижу две проблемы в том, что вы пытаетесь сделать. Поскольку у вас уже есть установленная версия, вам следует либо удалить существующий драйвер, либо использовать 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
Вы даже можете использовать диапазон версий в команде pip install
. Что-то вроде этого:
pip install 'stevedore>=1.3.0,<1.4.0'
А если пакет уже установлен и вы хотите понизить его версию, добавьте команду --force-reinstall
, например, так:
pip install 'stevedore>=1.3.0,<1.4.0' --force-reinstall
Один из способов, как предложено в этот пост, - упомянуть версию в «pip» как
pip install -Iv MySQL_python == 1.2.2
то есть. Используйте ==
и укажите номер версии, чтобы установить только эту версию. -I, --ignore-installed
игнорирует уже установленные пакеты.
Чтобы установить конкретную версию пакета python, будь то первый раз, обновление или понижение:
pip install --force-reinstall MySQL_python==1.2.4
MySQL_python версии 1.2.2 недоступен, поэтому я использовал другую версию. Для просмотра всех доступных версий пакета из индекса исключить версию:
pip install MySQL_python==
Иногда ранее установленная версия кэшируется.
~$ 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
Поскольку это оказалось серьезным изменением, введенным в версии 10 pip, я понизился до совместимой версии:
pip install 'pip<10'
Эта команда говорит pip установить версию модуля ниже версии 10. Сделайте это в virutalenv, чтобы вы не испортили установку Python на своем сайте.
Недавно я столкнулся с проблемой при использовании флага pip``
-I`, который я хотел где-то задокументировать:
-I
не * удалит существующий пакет, прежде чем продолжить; он просто установит его поверх старого. Это означает, что любые файлы, которые должны быть удалены между версиями, будут оставлены на месте. Это может вызвать странное поведение, если эти файлы совместно используют имена с другими установленными модулями.
Например, допустим, есть пакет с именем «пакет». В одном из файлов package
s они используют import datetime
. Теперь в [email protected]
это указывает на модуль стандартной библиотеки datetime
, но в [email protected]
они добавили локальный 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
при обновлении установленных версий пакета.
Эта команда ниже работала на меня
Версия Python - 2.7
пакет - питон-Дженкинс
команда - $ pip install 'python-jenkins > = 1.1.1'
Есть 2 способа установить любой пакет с версией: - A). pip install -Iv package-name == версия B). pip install -v package-name == версия
Для А
Здесь, если вы используете опцию -I во время установки (когда вы не знаете, установлен ли пакет) (например, 'pip install -Iv pyreadline == 2.* 'или что-то), вы будете устанавливать новый отдельный пакет с тем же существующим пакетом, имеющим другую версию.
Для Б
Сначала вы можете проверить, не нарушены ли требования. проверка пипа
а затем посмотрите, что уже установлено список пипсов
если список пакетов содержит какой-либо пакет, который вы хотите установить с определенной версией, то лучше сначала удалить пакет этой версии pip удалить имя пакета
И теперь вы можете переустановить тот же пакет с определенной версией pip install -v package-name == версия например. pip install -v pyreadline == 2.*
Если вы хотите обновить до последней версии и не знаете, какую последнюю версию вы можете ввести.
pip install MySQL_python --upgrade
Это обновит MySQL_python для последней доступной версии, которую вы можете использовать для любой другой версии пакета.