web-dev-qa-db-fra.com

Impossible de trouver une version répondant à l'exigence pytz

J'ai un problème pour installer pytz in virtualenv. 

Téléchargement/décompression de pytz
Impossible de trouver une version répondant à l'exigence pytz (à partir des versions: 2009r, 2008b, 2009f, 2008c, 2007g, 2011g, 2005m, 2011e, 2007f, 2007k, 2007k, 2007k, 2006k, 2008h, 2008i, 2008e, 2008a, 2008a, 2009a, 2006a, 2011j, 2010l, 2005m, 2008i, 2005k, 2008c, 2007c, 2007i, 2009l, 2009r, 2009r, 2006j, 2011k, ​​2007d, 2006d, 2009i, 2009i, 2007i, 2007i, 2009i, 2007i, 2007a, 2007a, 2007a, 2007a, 2007a, 2007a, 2007a, 2007a, 2007a, 2007a, 2007a, 2007a, 2007a, 2006a, 2010k, 2005r, 2007f, 2009l, 2009c, 2008c, 2009j, 2008g, 2010g, 2010h, 2010h, 2011h, 2010k, 2007c, 2007d, 2007d, 2009d, 2009l, 2008a, 2008a, 2008a, 2007a, 2008a, 2008a, 2008a, 2008a, 2008a, 2008a 2010e, 2012c, 2012d, 2012f, 2011n, 2011b, 2011j, 2008c, 2012j, 2007k, 2007k, 2009d, 2009d, 2010b, 2013b, 2013b, 2013b, 2011d, 2008b, 2009b, 2009b, 2009b, 2009b, 2009b, 2009b, 2009b, 2009b, 2009b, 2009b, 2009b, 2009b, 2008b, 2012c, 2009i, 2007g, 2012c, 2010h, 2011n, 2012g, 2007d, 2008a, 2009a, 2012a, 2012o, 2010o, 2006p, 2010b, 2009b, 2009a, 2012a, 2011a, 2008a, 2008a, 2008a, 2008a, 2008a, 2009a, 2009a, 2011a, 2011a 2009g, 2009g, 2005r, 2011c, 2012g, 2009g, 2012d, 2009j, 2010o, 2007c, 2010g, 2006g, 2009d, 2010d, 2005k, 2006j, 2010b, 2009n, 2011g, 2011c, 2012b, 2009e, 2009d, 2011j, 2007i, 2012j, 2010a, 2009r, 2012h, 2010e, 2009p, 2008i, 2009f, 2009e, 2012b, 2011b, 2011b, 2011b, 2011b, 2011n, 2012j, 2004b)
Nettoyer...
Aucune distribution ne correspond à la version pour pytz 

Il semble que ce soit un problème avec la dernière version de pip.

Y a-t-il une solution de contournement?

58
Houman

Cette erreur se produit lors de l'installation de pytz à l'aide de pip v1.4 ou plus récent, en raison de ce changement de comportement:

Versions préliminaires

À partir de la version 1.4, pip installera uniquement les versions stables spécifiées par PEP426 par défaut. Si une version ne peut pas être analysée comme une version conforme PEP426 version, elle est supposée être une pré-version.

Si un spécificateur d'exigence inclut une version préliminaire ou une version de développement (par exemple, >=0.0.dev0), pip autorisera les versions préliminaires et de développement pour cette exigence. Cela n'inclut pas l'indicateur !=.

La commande pip install prend également en charge un indicateur --pre qui permettra d’installer les versions préliminaires et de développement.

Les identificateurs de version du package pytz ont un format tel que 2013b. PEP426 utilise les identificateurs de version décrits dans PEP440 , qui spécifie que:

Les identifiants de version publique DOIVENT être conformes au schéma suivant:

N[.N]+[{a|b|c|rc}N][.postN][.devN]

Comme les versions pytz telles que 2013b ne correspondent pas à ce format, la version 1.4+ de pip traite les versions tout de pytz comme des versions préliminaires et ne les installe pas par défaut.

Si vous n'installez que pytz, vous pouvez utiliser l'indicateur --pre pour éviter ce problème, mais vous ne souhaitez pas utiliser cet indicateur pour installer la configuration requise de votre projet dans son intégralité: certains packages peuvent avoir des versions préliminaires instables que vous ne souhaitez pas. Dans ce cas, utilisez le comportement décrit ci-dessus: si vous spécifiez un numéro de version "préliminaire" pour le package, pip recherchera les versions "préliminaires" du package. J'ai donc ajouté ceci à mon requirements.txt:

pytz>=2013b

Quand je mets à jour mes paquets, pip va maintenant rechercher et installer correctement la dernière version de pytz.

Cela a été classé sous le numéro numéro n ° 1204837 dans le gestionnaire de bogues pytz et numéro n ° 974 dans le gestionnaire de bogues pip .

Stop Press: comme décrit dans le rapport de bogue PyTz , la numérotation des versions de pytz a été modifiée, par exemple en 2013.7 - donc, une fois la mise à niveau effectuée, le problème ne devrait plus se produire.

79
Jeremy Banks

Juste un étudiant. J'apprenais pytz (téléchargé, Exécuter, Invite de commande puis essayé IntelliJ, Structure du projet, SDKS) et il ne serait pas importé même après la suppression, la restauration des fichiers. Lisez la liste de bogues Launchtype. Je suis passé au pendule. Cela a fonctionné avec le script précédent qui utilisait pytz. Juste une idée, pas une réponse directe. Le script original était Buchalka (enseigner le script Python3 dans une leçon et la leçon ne fonctionnerait pas avec IntelliJ) avec pytz. Script adapté au pendule (Intellij, Structure du projet, SDKS, +) pour pouvoir faire l'expérience du fuseau horaire. (pas de retrait avec ce bloc de code) La publication depuis une recherche de sites Internet n'a pas beaucoup aidé à résoudre le problème de pytz. Le pendule offrait une alternative. 

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()))

Pour ceux qui ont plus de connaissances et un script plus compliqué, voici le site du pendule. https://pendulum.eustace.io/blog/a-faster-alternative-to-pyz.html Une bibliothèque existe pour le pendule sur le site. On dit (SÉBASTIEN EUSTACE)

Cela est dû au fait que Pendulum s'appuie fortement sur la présence de l'attribut fold qui a été introduit dans Python 3.6.

La raison pour laquelle il fonctionne dans l'écosystème Pendulum est qu'il a hérité de l'attribut fold de la classe DateTime.

0
Mary Page