2013-12-10 10 views
9

virtualtvでpytz(v2013.8がインストールされていますが、2013.b、2011kで発生)がインストールされています。最初の呼び出しはpytz.timezoneへの最初の呼び出しがvirtualenvで遅い

pytz.timezone("US/Eastern") 

に約4秒かかります。通常の環境では、これは本質的に瞬間的です。

誰かがこれをより速く動かすためのトリックを持っていますか?

+1

ニースの自己回答! –

+1

これは将来、非常に役立ちます! :)あなたが担当者を要求したときに回答として再ポストすることを検討してください。 – BartoszKP

答えて

12

私は実際には、ソースコードを見て遊んで答えを見つけました。卵の中からタイムゾーンの設定を取得し、タイムゾーンへの最初の呼び出しがすべてのタイムゾーンファイルが存在することをチェックする必要があるので、最初の呼び出しは、それらのファイルをどのように見つける必要があるかによって遅くなる可能性があります。 pytzがapt-get install python-tzを使用してインストールされている場合は、圧縮されていないファイルをヒットして呼び出すと非常に高速です。 easy_install pytzを使用してインストールされている場合は、1つの圧縮ファイルに何度も何度もヒットし、遅くなります。

解決策は、それを解凍することです。幸運にもpipには便利なコマンドがあります。

TL; DR

pip unzip pytz 
1

は、言うように、私は

ピップ解凍pytz

を実行している苦労しただけでpytz-2013.9-py2.7.egg

1

を削除し、Windowsのように思えますパッケージを見つけることができません。私はsetup.pyファイルを編集することだったと

zip_safe = Falseの

を交換働く見つけ回避策。 (Falseに設定する)。その後、再度インストーラを実行します。

Pythonは

をsetup.py installをこれは、同様に遅いロード時間の私の問題を解決しました。

関連する問題