You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用-OO参数运行含Astropy的Python代码报错问题

问题:使用Python -OO参数运行依赖Astropy的代码报错
  • 代码在无Python参数或使用-O参数时可正常运行,但使用-OO参数时触发报错,代码依赖Astropy(一个包含多个子包、使用第三方库ply的Python天文库)。

最小复现代码(minimalTest.py)

import astropy.coordinates
print('hello world')

可正常执行的命令

以下命令执行后会输出hello world:

# python3 minimalTest.py
# python3 -O minimalTest.py

报错场景及栈信息

执行以下命令时触发报错:

# python3 -OO minimalTest.py

报错栈信息:

Traceback (most recent call last):
  File "/tmp/minimalTest.py", line 1, in <module>
    import astropy.coordinates
  File "/usr/local/lib/python3.9/site-packages/astropy/coordinates/__init__.py", line 13, in <module>
    from .builtin_frames import *
  File "/usr/local/lib/python3.9/site-packages/astropy/coordinates/builtin_frames/__init__.py", line 30, in <module>
    from .cirs import CIRS
  File "/usr/local/lib/python3.9/site-packages/astropy/coordinates/builtin_frames/cirs.py", line 8, in <module>
    from .utils import DEFAULT_OBSTIME, EARTH_CENTER
  File "/usr/local/lib/python3.9/site-packages/astropy/coordinates/builtin_frames/utils.py", line 16, in <module>
    from astropy.utils import iers
  File "/usr/local/lib/python3.9/site-packages/astropy/utils/iers/__init__.py", line 1, in <module>
    from .iers import *
  File "/usr/local/lib/python3.9/site-packages/astropy/utils/iers/iers.py", line 23, in <module>
    from astropy.table import MaskedColumn, QTable
  File "/usr/local/lib/python3.9/site-packages/astropy/table/__init__.py", line 118, in <module>
    import astropy.io.ascii.connect
  File "/usr/local/lib/python3.9/site-packages/astropy/io/ascii/__init__.py", line 8, in <module>
    from .basic import (
  File "/usr/local/lib/python3.9/site-packages/astropy/io/ascii/basic.py", line 44, in <module>
    class Basic(core.BaseReader):
  File "/usr/local/lib/python3.9/site-packages/astropy/io/ascii/core.py", line 1233, in __init__
    func.__doc__ += inspect.cleandoc(cls.__doc__).strip()
  File "/usr/local/lib/python3.9/inspect.py", line 632, in cleandoc
    lines = doc.expandtabs().split('\n')
AttributeError: 'NoneType' object has no attribute 'expandtabs'

推测原因

该问题可能与Astropy的旧问题相关,涉及ply处理文档字符串的逻辑,已在Centos7(Python 3.9.10)和Windows10(Python 3.11.2)系统上复现。


内容的提问来源于stack exchange,提问作者MatCat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 08:51:33