我在virtualenv中安装了pytz(v2013.8,但它发生在2013.b,2011k)。第一次打电话给
pytz.timezone("US/Eastern")
大约需要4秒钟。在常规环境中,这基本上是即时的。
有没有人可以让它更快地运行?
答案 0 :(得分:12)
我实际上是通过玩游戏并查看源代码来找到答案的。由于它从egg中获取时区设置,并且第一次调用时区必须检查所有时区文件是否存在,因此第一次调用可能会很慢,具体取决于操作系统如何查找这些文件。如果使用apt-get install python-tz
安装pytz,那么调用命中未压缩文件并且非常快。如果使用easy_install pytz
安装它,那么它会一遍又一遍地击中一个压缩文件并且速度较慢。
所以解决方案就是解压缩它。幸运的是,pip有一个方便的命令。
TL;博士
pip unzip pytz
答案 1 :(得分:1)
似乎在Windows中只删除pytz-2013.9-py2.7.egg
答案 2 :(得分:1)
我很难跑步
pip unzip pytz
因为它说无法找到包裹。我找到的解决方法是编辑setup.py文件并替换
zip_safe =假
。 (将其设置为False)。然后再次运行安装程序:
python setup.py install
这解决了我加载时间慢的问题。
答案 3 :(得分:0)
您实际上可以通过设置环境变量PYTZ_TZDATADIR来指定zoneinfo的位置:
export PYTZ_TZDATADIR=/usr/share/zoneinfo
仅在未设置PYTZ_TZDATADIR的情况下,压缩的zoneinfo文件才是只读文件。