AttributeError:创建BinTableHDU时,'record'对象没有属性'_coldefs'

时间:2018-07-17 11:54:46

标签: python astropy

当我要使用星号创建简单的BinTableHDU时,最近在我正在使用的新系统上出现错误。

这是我设置的用于隔离问题的代码:

import astropy.io.fits as pyfits 
ar = numpy.array(range(100))
col = pyfits.Column(name='TEST', array=ar, format='D')
cdef = pyfits.ColDefs([col])
hdu = pyfits.BinTableHDU.from_columns(cdef)
hdu.writeto("test.fits")
pyfits.getdata("test.fits")

我收到此错误:

AttributeError: 'record' object has no attribute '_coldefs'

我将astropy 2.0.2与python 3.6.3一起使用

有解决这个问题的主意吗?

[EDIT:]在脚本中运行时,需要显式访问数据以触发错误:

print(pyfits.getdata("test.fits"))

2 个答案:

答案 0 :(得分:1)

这是Astropy v2.0.3中修复的错误:https://github.com/astropy/astropy/pull/6955

conda上还应该有更新的Astropy版本。

答案 1 :(得分:-1)

我有点前进。我的不幸来自anaconda的安装。 当我使用常规的python库(没有anaconda)时,读取test.fits不会出现任何错误。 因此问题出在读取test.fits,而不是编写它。