使用-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
相关产品推荐
相关产品推荐

