Я пытаюсь установить версию 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 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
Вы даже можете использовать диапазон версий с помощью команды 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
$ pip install 'xkcdpass==1.2.5' --force-reinstall
Один из способов, предложенный в этом сообщении, должен указать версию в pip
как
pip install -Iv MySQL_python==1.2.2
то есть. Используйте ==
и укажите номер версии для установки только этой версии. -I, --ignore-installed
игнорирует уже установленные пакеты.
pip list
не знал об этом, но conda list
был (и будет отображать различные версии пакета). Это также полностью запутало Пихарм .
Я считаю, что если у вас уже установлен пакет, пип не перезапишет его другой версией. Используйте -I
, чтобы игнорировать предыдущие версии.
Чтобы установить конкретную версию пакета Python, будь то первый раз, обновление или переход на более раннюю версию:
pip install --force-reinstall MySQL_python==1.2.4
MySQL_python версии 1.2.2 недоступен, поэтому я использовал другую версию. Для просмотра всех доступных версий пакета из индекса исключите версию:
pip install MySQL_python==
Поскольку в версии 10 pip это явное изменение, я понизил его до совместимой версии:
pip install 'pip<10'
Эта команда указывает pip установить версию модуля ниже версии 10. Сделайте это в virutalenv, чтобы не испортить установку Python на своем сайте.
Есть два способа установить любой пакет с версией: - A). pip install -Iv имя пакета == версия B). pip install -v имя-пакета == версия
Для
Здесь, если вы используете опцию -I во время установки (когда вы не знаете, установлен ли пакет) (например, 'pip install -Iv pyreadline == 2. *' или что-то еще), вы будете устанавливать новый отдельный пакет с тем же существующим пакетом, имеющим другую версию.
Для Б
2.и тогда посмотрим, что уже установлено по пипсу
3.Если список пакетов содержит какой-либо пакет, который вы хотите установить с определенной версией, тогда лучшим вариантом будет сначала удалить пакет этой версии, используя pip uninstall package-name
4. А теперь вы можете переустановить тот же пакет с определенной версией, установив pip -v имя_пакета == версия, например, pip install -v pyreadline == 2. *
pip install MySQL_python==1.8.9
pip install -Iv pandas==0.12.0