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

导入lightkurve 2.4.0失败:astropy模块ConstantMeta报错求助

Lightkurve 2.4.0导入失败排查(Astropy内部错误)

问题描述

导入lightkurve 2.4.0时触发Astropy内部错误,核心报错信息为:

TypeError: 'ConstantMeta' object is not iterable

完整报错栈:

/Users/yair1/PycharmProjects/TESSLC/venv/bin/python /Users/yair1/PycharmProjects/TESSLC/main.py
Traceback (most recent call last):
  File "/Users/yair1/PycharmProjects/TESSLC/main.py", line 8, in <module>
    import lightkurve as lk
  File "/Users/yair1/PycharmProjects/TESSLC/venv/lib/python3.10/site-packages/lightkurve/__init__.py", line 105, in <module>
    from . import units  # enable ppt and ppm as units
  File "/Users/yair1/PycharmProjects/TESSLC/venv/lib/python3.10/site-packages/lightkurve/units.py", line 2, in <module>
    from astropy import units as u
  File "/Users/yair1/PycharmProjects/TESSLC/venv/lib/python3.10/site-packages/astropy/units/__init__.py", line 25, in <module>
    from . import astrophys, cgs, misc, photometric, si
  File "/Users/yair1/PycharmProjects/TESSLC/venv/lib/python3.10/site-packages/astropy/units/astrophys.py", line 9, in <module>
    from astropy.constants import si as _si
  File "/Users/yair1/PycharmProjects/TESSLC/venv/lib/python3.10/site-packages/astropy/constants/__init__.py", line 26, in <module>
    from . import cgs, si
  File "/Users/yair1/PycharmProjects/TESSLC/venv/lib/python3.10/site-packages/astropy/constants/cgs.py", line 8, in <module>
    from .config import codata, iaudata
  File "/Users/yair1/PycharmProjects/TESSLC/venv/lib/python3.10/site-packages/astropy/constants/config.py", line 14, in <module>
    codata = importlib.import_module(".constants." + phys_version, "astropy")
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "/Users/yair1/PycharmProjects/TESSLC/venv/lib/python3.10/site-packages/astropy/constants/codata2018.py", line 8, in <module>
    from .constant import Constant, EMConstant
  File "/Users/yair1/PycharmProjects/TESSLC/venv/lib/python3.10/site-packages/astropy/constants/constant.py", line 265, in <module>
    class EMConstant(Constant):
  File "/Users/yair1/PycharmProjects/TESSLC/venv/lib/python3.10/site-packages/astropy/constants/constant.py", line 88, in __new__
    return super().__new__(mcls, name, bases, d)
TypeError: 'ConstantMeta' object is not iterable

Process finished with exit code 1

问题原因

该错误源于Astropy版本与Python 3.10不兼容,或虚拟环境中Astropy包损坏、版本不符合lightkurve 2.4.0的依赖要求。Lightkurve 2.4.0对Astropy的依赖范围是astropy>=4.3,!=5.0,!=5.0.1,若环境中Astropy版本超出此范围,或安装过程中包文件损坏,会触发元类处理的底层bug。

解决方法

1. 重新安装兼容版本的Astropy

先卸载现有Astropy,再安装符合要求的版本:

# 卸载旧版本
pip uninstall astropy -y
# 安装lightkurve 2.4.0兼容的Astropy版本
pip install astropy==5.0.4

或自动升级到最新兼容版本:

pip install astropy --upgrade

2. 重建干净的虚拟环境

若虚拟环境存在包冲突或损坏,直接重建环境:

# 删除旧虚拟环境
rm -rf /Users/yair1/PycharmProjects/TESSLC/venv
# 创建新的Python3.10虚拟环境
python3.10 -m venv /Users/yair1/PycharmProjects/TESSLC/venv
# 激活环境
source /Users/yair1/PycharmProjects/TESSLC/venv/bin/activate
# 安装lightkurve 2.4.0,自动拉取所有兼容依赖
pip install lightkurve==2.4.0

3. 验证版本兼容性

检查当前环境的Astropy版本,确认其符合依赖要求:

pip list | grep astropy

若版本不在>=4.3,!=5.0,!=5.0.1范围内,执行方法1调整版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 11:27:35