Я пытаюсь установить версию 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 MySQL_python==1.8.9
pip install -Iv pandas==0.12.0
Ответы:
TL; DR:
pip install -Iv
(то естьpip install -Iv MySQL_python==1.2.2
)Во-первых, я вижу две проблемы с тем, что вы пытаетесь сделать. Поскольку у вас уже есть установленная версия, вы должны либо удалить текущий существующий драйвер, либо использовать
pip install -I MySQL_python==1.2.2
Тем не менее, вы скоро обнаружите, что это не работает. Если вы посмотрите журнал установки pip или сделаете a,
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 install
командой. Что-то вроде этого:И если пакет уже установлен, и вы хотите понизить его, добавьте
--force-reinstall
так:источник
$ pip install 'xkcdpass==1.2.5' --force-reinstall
Одним из способов, как предлагается в этом посте , является упоминание версии в
pip
виде:т.е. используйте
==
и укажите номер версии, чтобы установить только эту версию.-I, --ignore-installed
игнорирует уже установленные пакеты.источник
pip list
не знал об этом, ноconda list
был (и будет отображать различные версии пакета). Это также полностью смутило Пихарма .Чтобы установить конкретную версию пакета Python, будь то первый раз, обновление или переход на более раннюю версию:
MySQL_python версии 1.2.2 недоступен, поэтому я использовал другую версию. Для просмотра всех доступных версий пакета из индекса исключите версию:
источник
Я считаю, что если у вас уже установлен пакет, pip не перезапишет его другой версией. Используйте,
-I
чтобы игнорировать предыдущие версии.источник
unset PYTHONPATH
чтобы неpip
видеть ваши предустановленные библиотекиИногда ранее установленная версия кэшируется.
Возвращает следующее:
Требование уже выполнено: подушка == 5.2.0 в /home/ubuntu/anaconda3/lib/python3.6/site-packages (5.2.0)
Мы можем использовать --no-cache-dir вместе с -I, чтобы перезаписать это
источник
Поскольку в версии 10 pip это явное изменение, я понизил его до совместимой версии:
Эта команда указывает pip установить версию модуля ниже версии 10. Сделайте это в virutalenv, чтобы не испортить установку Python на своем сайте.
источник
Недавно я столкнулся с проблемой при использовании
pip
«s-I
флаг , который я хотел где - нибудь документ:-I
будет не удалить существующий пакет перед продолжением; он просто установит его поверх старого. Это означает, что любые файлы, которые должны быть удалены между версиями, вместо этого останутся на месте. Это может вызвать странное поведение, если эти файлы имеют общие имена с другими установленными модулями.Например, скажем, есть пакет с именем
package
. В одном изpackage
файлов они используютimport datetime
. Теперь,package@2.0.0
это указывает наdatetime
модуль стандартной библиотеки , ноpackage@3.0.0
они добавили localdatetime.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'
источник
Есть два способа установить любой пакет с версией: - A). pip install -Iv package-name == версия B). pip install -v package-name == версия
Для
Здесь, если вы используете опцию -I при установке (когда вы не знаете, установлен ли пакет) (например, 'pip install -Iv pyreadline == 2. *' или что-то еще), вы устанавливаете новую отдельный пакет с тем же существующим пакетом, имеющим другую версию.
Для Б
2.и посмотрим, что уже установлено по списку пипсов
3.Если список пакетов содержит какой-либо пакет, который вы хотите установить с определенной версией, то лучшим вариантом будет сначала удалить пакет этой версии, используя pip uninstall package-name
4. А теперь вы можете переустановить тот же пакет с определенной версией, установив pip -v package-name == версия, например, pip install -v pyreadline == 2. *
источник
Если вы хотите обновить до последней версии, и вы не знаете, какую последнюю версию вы можете набрать.
pip install MySQL_python --upgrade
Это обновит MySQL_python до последней доступной версии, которую вы можете использовать для любой другой версии пакета.
источник