zoneinfo数据损坏,如何编译新数据?

时间:2013-07-19 12:26:31

标签: python django celery celerybeat zoneinfo

基本上同样的事情发生在我问this问题的时候。但是这次我再也说错了。我再次尝试了Burhan Khalid的答案,我再次遇到同样的错误。我还尝试再次从备份中复制粘贴zoneinfo文件夹,但这次它没有修复我的错误。

Django版本= 1.4.5

Celery版本= 3.0.8

Django-Celery版本= 3.0.6

pytz = 2013b的版本(与我下载的文件相同)

OS = Mac Mountain Lion


尝试1:

  1. 清除zoneinfo文件夹(/ usr / share / zoneinfo /)
  2. 将tar gz文件粘贴到文件夹(tzdata2013b.tar.gz)
  3. 使用Burhan Khalid提供的命令提取tar gz文件
  4. 创建由Burhan Khalid提供的脚本
  5. 运行脚本
  6. 结果:

    ValueError: Incorrect timezone setting: Europe/Amsterdam when trying to run celery beat.
    

    当我检查在zoneinfo文件夹中确实没有名为Europ的文件夹时,其中有一个文件夹


    尝试2:

    1. 请勿清除zoneinfo文件夹(我在尝试上面之前将其从备份中删回)
    2. 将tar gz文件粘贴到文件夹(tzdata2013b.tar.gz)
    3. 使用Burhan Khalid提供的命令提取tar gz文件
    4. 在zoneinfo文件夹
    5. 中创建Burhan Khalid提供的脚本
    6. 运行脚本
    7. 结果2:

      在第3步,我得到以下输出,包括一些错误:

      [13:59:07] /usr/share/zoneinfo $ tar xvzf tzdata2013b.tar.gz
      x Makefile
      x africa: Can't remove already-existing dir
      x antarctica: Can't remove already-existing dir
      x asia: Can't remove already-existing dir
      x australasia
      x europe: Can't remove already-existing dir
      x northamerica
      x southamerica
      x pacificnew
      x etcetera
      x backward
      x systemv
      x factory
      x solar87
      x solar88
      x solar89
      x iso3166.tab
      x zone.tab
      x leapseconds
      x yearistype.sh tar: Error exit
      delayed from previous errors.
      

      在步骤5,我得到以下输出,包括一些错误:

      [13:59:13] /usr/share/zoneinfo $ sudo ./the_script.sh
      Password:
      zic: error reading africa
      zic: error reading antarctica
      zic: error reading asia
      zic: error reading europe
      

      我仍然有腐败的文件。


      尝试3:

      1. 再次恢复备份zoneinfo文件夹
      2. 在桌面上创建单独的文件夹
      3. 将tar gz文件和脚本粘贴到桌面上的新文件夹中
      4. 使用
      5. 命令提取tar gz文件
      6. 执行脚本
      7. 结果3:

        步骤3和5没有错误或异常输出

        尝试运行celery beat仍然会导致文件错误


        问题 我在这做错了什么。我似乎无法弄清楚这一点......


        修改

        所以我已经做了一些挖掘并找到了以下内容:

        1. 如果我通过foreman运行而不是通过Procfile运行相同的命令我得到没有错误,即使它是Procfile中唯一的命令
        2. 错误的文件描述符错误意味着Python tries to close a file that is already closed而不是文件损坏
        3. 这让我得出的结论是,在使用Procfile时工头中的某些东西强制文件在正确关闭之前关闭...思考?

0 个答案:

没有答案