当我要使用星号创建简单的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"))
答案 0 :(得分:1)
这是Astropy v2.0.3中修复的错误:https://github.com/astropy/astropy/pull/6955
conda上还应该有更新的Astropy版本。
答案 1 :(得分:-1)
我有点前进。我的不幸来自anaconda的安装。 当我使用常规的python库(没有anaconda)时,读取test.fits不会出现任何错误。 因此问题出在读取test.fits,而不是编写它。