Не удалось найти версию, которая удовлетворяет требованию pytz
У меня проблема с установкой pytz в virtualenv.
Скачивание / распаковка pytz
Не удалось найти версию, которая удовлетворяет требованию pytz (из версий: 2009r, 2008b, 2009f, 2008c, 2007g, 2011g, 2005m, 2011e, 2007f, 2011k, 2007k, 2006k, 2006j, 2008h, 2008i, 2011e, 2008e, 2009e, 2009e, 2006g, 2011j, 2010l, 2005m, 2008i, 2005k, 2008g, 2007c, 2007i, 2009l, 2009r, 2006r, 2006j, 2011k, 2007d, 2006p, 2009i, 2009u, 2007i, 2009f, 2010g, 2008h, 2009a, 2007g, 2011e, 2006p, 2012b, 2010k, 2005r, 2007f, 2009l, 2009p, 2008c, 2009j, 2008g, 2010g, 2010h, 2011h, 2011h, 2010k, 2007c, 2007d, 2011d, 2009l, 2011l, 2011c, 2008a, 2005m, 2007k, 2009n, 2011d, 2010d, 2013b, 2012h, 2010e, 2012c, 2012d, 2012f, 2011n, 2011b, 2011j, 2008c, 2012j, 2007k, 2009f, 2009f, 2009d, 2010e, 2010b, 2013b, 2011d, 2009p, 2008h, 2005r, 2009i, 2009n, 2009a, 2010k, 2008g, 2006g, 2008b, 2012c, 2009i, 2007g, 2012c, 2010h, 2011n, 2012g, 2007d, 2008a, 2009u, 2012u, 2012g, 2010o, 2006p, 2010b, 2009u, 2012d, 2011k, 2012f, 2009a, 2007f, 2011h, 2010h, 2010l, 2009j, 2011g, 2009g, 2009g, 2005r, 2011c, 2012g, 2009g, 2012d, 2009j, 2010o, 2007o, 2007c, 2010g, 2006g, 2009d, 2010h, 2005k, 2006j, 2010b, 2009n, 2011g, 2011c, 2012b, 2009e, 2009d, 2011j, 2007j, 2007i, 2012j, 2010l, 2009r, 2012h, 2010e, 2010e, 2009p, 2008i, 2012f, 2009e, 2012b, 2011h, 2005k, 2008b, 2013b, 2011n, 2012j, 2004b)
Убираться...
Нет версий, соответствующих версии для pytz
Похоже, это проблема последней версии pip.
Есть ли обходной путь?
2 ответа
Эта ошибка возникает при установке pytz
используя pip v1.4 или новее, из-за этого изменения в поведении:
Предварительные версии
Начиная с версии 1.4, pip будет устанавливать только стабильные версии, как указано в PEP426 по умолчанию. Если версия не может быть проанализирована как совместимая версия PEP426, то предполагается, что это предварительная версия.
Если спецификатор требования включает в себя предварительную версию или версию для разработки (например,
>=0.0.dev0
) тогда pip позволит выпустить предварительную версию и версию для разработки для этого требования. Это не включает!=
флаг.
pip install
Команда также поддерживает--pre
флаг, который позволит устанавливать предварительные и разрабатываемые версии.
Идентификаторы версии для pytz
пакет имеет формат как 2013b
, PEP426 использует идентификаторы версий, описанные в PEP440, которые определяют, что:
Публичные идентификаторы версий ДОЛЖНЫ соответствовать следующей схеме:
N[.N]+[{a|b|c|rc}N][.postN][.devN]
Поскольку pytz
версии как 2013b
не соответствуют этому формату, версия 1.4+ pip обрабатывает все версии pytz
как предварительные версии, и не устанавливает их по умолчанию.
Если вы только устанавливаете pytz
, вы можете использовать --pre
Установите флажок, чтобы избежать такого поведения, но вы не захотите использовать этот флаг для установки требований всего проекта: некоторые пакеты могут иметь нестабильные предварительные версии, которые вам не нужны. В этом случае используйте поведение, описанное выше: если вы укажете номер версии "pre-release" для пакета, то pip будет искать "pre-release" версии пакета. Так что я добавил это к моему requirements.txt
:
pytz>=2013b
Когда я обновлю свои пакеты, pip теперь будет правильно искать и устанавливать последнюю версию pytz
,
Это было зарегистрировано как проблема #1204837 в системе отслеживания ошибок pytz и проблема #974 в системе отслеживания ошибок pip.
Стоп Нажмите: Как описано в отчете об ошибке PyTz, нумерация версий pytz теперь была изменена, например, на 2013.7 - поэтому после обновления до этой проблемы проблема больше не должна возникать.
Просто студент. Я изучал pytz(скачал, запустил, командную строку, затем попробовал IntelliJ, Project Structure, SDKS), и он не мог импортировать даже после удаления, переделывания файлов. Прочитайте список ошибок Launchtype. Я переключился на маятник. Это работало с предыдущим скриптом, который использовал pytz. Просто идея, а не прямой ответ. Первоначально сценарий был Бучалкой (преподавание сценария Python3 на уроке, и урок не будет работать с IntelliJ) с pytz. Адаптированный скрипт для маятника (Intellij,Project Structure, SDKS, +), чтобы я мог испытать часовой пояс. (нет отступов с этим блоком кода). Публикация, так как поиск по интернет-сайтам не выявил большой помощи в решении проблем. Маятник предложил альтернативу.
import pendulum
import datetime
country = "Europe/Paris"
tz_to_display = pendulum.timezone(country)
local_time = datetime.datetime.now(tz=tz_to_display)
print("The time in {} is {}".format(country, local_time))
print("UTC is {}".format(datetime.datetime.utcnow()))
Для тех, у кого больше знаний и более сложный сценарий, вот сайт маятника. https://pendulum.eustace.io/blog/a-faster-alternative-to-pyz.html На сайте существует библиотека для маятника. Это заявляет ( SÉBASTIEN EUSTACE)
Это связано с тем, что Pendulum сильно зависит от наличия атрибута Fold, который был представлен в Python 3.6.
Причина, по которой он работает в экосистеме маятника, заключается в том, что он перенес атрибут сгиба в классе DateTime.