【发布时间】:2013-04-29 13:28:42
【问题描述】:
感谢http://www.lfd.uci.edu/%7Egohlke/pythonlibs/分发的预编译版本,我终于可以在我的Windows7 64位机器和Python 3.3.1中安装天文计算Ephem包了。
在学习使用它的过程中,我偶然发现了以下奇怪现象,对此我找不到任何解释:
Win32 上的 Python 3.3.1(v3.3.1:d9893d13c628,2013 年 4 月 6 日,20:30:21)[MSC v.1600 64 位 (AMD64)] 输入“copyright”、“credits”或“license()”了解更多信息。
>>> 导入 ehem
>>> ephem.localtime( ephem.Date( '1970' ) )
datetime.datetime(1970, 1, 1, 1, 0, 0, 3)
>>> ephem.localtime( ephem.Date( '1969' ) )
Traceback(最近一次调用最后一次):
文件“”,第 1 行,在 ephem.localtime(ephem.Date('1969'))
文件“C:\Python33\lib\site-packages\ephem__init__.py”,第 479 行,本地时间 timetuple = time.localtime(calendar.timegm(date.tuple()))
OSError: [Errno 22] 无效参数
>>>
所有小于 1970 的参数都会触发同样的错误。由于 ehem.Date() 似乎不是罪魁祸首,
>>> ephem.Date('1969')
25202.5
>>>
我只能得出结论,奇怪的行为属于 ehem.localtime()。是我用错了还是代码有bug?
【问题讨论】:
-
尝试:
import time; time.localtime(-31536000.0)(在 Ubuntu 上运行良好)。
标签: windows-7 python-3.x