web-dev-qa-db-ja.com

要件pytzを満たすバージョンが見つかりませんでした

Virtualenvに pytz をインストールすると問題が発生します。

Pytzのダウンロード/展開
要件pytzを満たすバージョンが見つかりませんでした(バージョン:2009r、2008b、2009f、2008c、2007g、2011g、2005m、2011e、2007f、2011k、2007k、2006j、2008h、2008i、2011e、2008aから、2009e、2006g、2011j、2010l、2005m、2008i、2005k、2008g、2007c、2007i、2009l、2009r、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、2010k、2007c、2007d、2011d、2009l、2011c、2008a、2005m、2007k、2009n、2011d、2010o 、2013b、2012h、2010e、2012c、2012d、2012f、2011n、2011b、2011j、2008c、2012j、2007k、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、2012g、2010o、2006p、2010b、2009u、2012d、2011k、2012f、2009a、2007f、2011h、2010l 、2009j、2011g、2009g、2009g、2005r、2011c、2012g、2009g、2012d、2009j、2010o、2007c、2010g、2006g、2009d 、2010h、2005k、2006j、2010b、2009n、2011g、2011c、2012b、2009e、2009d、2011j、2007i、2012j、2010l、2009r、2012h、2010e、2009p、2008i、2012f、2009e、2012b、2011h、2005k、2008b 、2013b、2011n、2012j、2004b)
清掃...
pytzのバージョンに一致する分布はありません

最新バージョンのpipに問題があるようです。

回避策はありますか?

58
Houman

このエラーは、動作のこの変更により、pip v1.4以降を使用してpytzをインストールするときに発生します。

プレリリースバージョン

V1.4以降、pipはデフォルトで PEP426 で指定された安定バージョンのみをインストールします。バージョンが準拠 PEP426 バージョンとして解析できない場合、プレリリースであると見なされます。

要件指定子にプレリリース版または開発版(例:>=0.0.dev0)が含まれている場合、pipはその要件のプレリリース版および開発版を許可します。これには!=フラグは含まれません。

pip installコマンドは、プレリリースおよび開発リリースのインストールを可能にする--preフラグもサポートしています。

pytzパッケージのバージョン識別子は、2013bのような形式です。 PEP426 は、 PEP44 で説明されているバージョン識別子を使用します。

公開バージョン識別子は、次のスキームに準拠する必要があります。

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

2013bのようなpytzバージョンはこのフォーマットと一致しないため、pipのバージョン1.4+はallバージョンのpytzを事前に処理します。リリースバージョン。デフォルトではインストールされません。

pytzのみをインストールする場合は、--preフラグを使用してこの動作を回避できますが、プロジェクトの要件全体をインストールするためにこのフラグを使用したくない場合があります。不要なリリースバージョン。その場合、上記の動作を使用します。パッケージの「プレリリース」バージョン番号を指定すると、pipはパッケージの「プレリリース」バージョンを検索します。そこで、これをrequirements.txtに追加しました:

pytz>=2013b

パッケージをアップグレードすると、pipはpytzの最新バージョンを正しく検索してインストールします。

これは pytzバグトラッカーの問題#1204837 および pipバグトラッカーの問題#974 として提出されています。

Stop PressPyTzバグレポート で説明されているように、pytzのバージョン番号は、たとえば、 2013.7-これにアップグレードすると、問題は発生しなくなります。

80
Jeremy Banks

ただの学生。 pytz(ダウンロード、実行、コマンドプロンプト、その後IntelliJ、プロジェクト構造、SDKSを試してみました)を学んでいたので、ファイルを削除してやり直してもインポートされませんでした。 Launchtypeバグリストを読んでください。振り子に切り替えました。 pytzを使用した以前のスクリプトで動作しました。直接的な答えではなく、単なるアイデアです。元のスクリプトは、pytzを使用したBuchalka(レッスンでPython3スクリプトを教えるとレッスンはIntelliJでは機能しません)でした。スクリプトを振り子(Intellij、プロジェクト構造、SDK、+)に適合させたため、タイムゾーンを体験できました。 (このコードブロックにはインデントはありません)インターネットサイトを検索しても、pytzを解決するのにあまり役立ちませんでしたので、投稿してください。振り子は代替手段を提供しました。

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 サイト上の振り子用のライブラリが存在します。それは述べています(セバスチャン・ユースタス)

これは、PendulumがPython 3.6で導入されたfold属性の存在に大きく依存しているためです。

Pendulumエコシステム内で動作する理由は、DateTimeクラスのfold属性をバックポートしたためです。

0
Mary Page