2013-12-10 8 views
9

Zainstalowałem program pytz (v2013.8, ale dzieje się to w 2013.b, 2011k) w virtualenv. Pierwsze wywołanie doPierwsze wywołanie pytz.timezone jest powolne w virtualenv

pytz.timezone("US/Eastern") 

trwa około 4 sekund. W normalnych warunkach jest to zasadniczo natychmiastowe.

Czy ktoś ma sztuczkę, aby uruchomić to szybciej?

+1

Niezła samoobsługa! –

+1

Może to okazać się bardzo pomocne w przyszłości, dobra robota! :) Zastanów się nad odpowiedzią, gdy potrzebujesz rep. – BartoszKP

Odpowiedz

12

Właściwie natknąłem się na odpowiedź, bawiąc się i patrząc na kod źródłowy. Ponieważ jego ustawienia strefy czasowej są pobierane z jaja, a pierwsze wywołanie do strefy czasowej musi sprawdzić, czy wszystkie pliki strefy czasowej istnieją, pierwsze wywołanie może być wolne w zależności od tego, w jaki sposób os musi znaleźć te pliki. Jeśli pytz jest zainstalowany przy użyciu apt-get install python-tz, wówczas wywołuje nieskompresowane pliki i jest bardzo szybki. Jeśli jest zainstalowany przy użyciu easy_install pytz, to uderza w jeden skompresowany plik raz za razem i jest wolniejszy.

Rozwiązaniem jest dekompresja. Na szczęście pip ma poręczne polecenie.

tl; dr

pip unzip pytz 
1

Wydaje się, że w systemie Windows po prostu usunąć pytz-2013.9-py2.7.egg

1

miałem twardy czas pracy

pip rozpakuj pytz

jak mówi nie może znaleźć pakietu. Rozwiązaniem, które znalazłem, który działa było edytować plik setup.py i zastąpienie

zip_safe = False

. (Ustaw na False). Następnie uruchom instalator ponownie:

python setup.py zainstalować

to rozwiązać mój problem powolnego czasu załadunku, jak również.

Powiązane problemy