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

导入astropy.coordinates.representation时出现循环导入错误求助

astropy循环导入错误排查与解决

在Jupyter Notebook中尝试导入astropy.coordinates.representation时出现循环导入错误,具体报错如下:

ImportError: cannot import name 'SphericalRepresentation' from partially initialized module 'astropy.coordinates.representation' 
  (most likely due to a circular import)
  (C:\Users\konto\anaconda3\lib\site-packages\astropy\coordinates\representation\__init__.py)

最初是执行以下导入specutils的代码时触发该错误,后续在空白Notebook中单独导入astropy.coordinates.representation也会出现相同问题,且已确认所有库均为最新版本。

导入代码:

from astropy.io import fits
from astropy import units as u
import numpy as np

import plotly.express as px

#spectra utilities
from specutils import Spectrum1D,SpectralRegion
from specutils.analysis import equivalent_width

更新:尚未找到问题根源,但在实验室环境使用以下版本库时可正常完成导入:

  • astropy 5.3.4
  • specutils 1.11.0
  • numpy 1.23.5
  • plotly 5.18.0

完整回溯信息:

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
Cell In[1], line 8
      5 import plotly.express as px
      7 #spectra utilities
----> 8 from specutils import Spectrum1D,SpectralRegion
      9 from specutils.analysis import equivalent_width

File ~\AppData\Roaming\Python\Python310\site-packages\specutils\__init__.py:23
     19 test.__test__ = False
     22 # Allow loading spectrum object from top level module
---> 23 from .spectra import *  # noqa
     25 # Load the IO functions
     26 from .io.default_loaders import *  # noqa

File ~\AppData\Roaming\Python\Python310\site-packages\specutils\spectra\__init__.py:5
      1 """
      2 The core specutils data objects package. This contains the
      3 `~astropy.nddata.NDData`-inherited classes used for storing the spectrum data.
      4 """
----> 5 from .spectrum1d import *  # noqa
      6 from .spectral_region import *  # noqa
      7 from .spectrum_collection import *  # noqa

File ~\AppData\Roaming\Python\Python310\site-packages\specutils\spectra\spectrum1d.py:8
      6 from astropy.utils.decorators import lazyproperty
      7 from astropy.utils.decorators import deprecated
----> 8 from astropy.nddata import NDUncertainty, NDIOMixin, NDArithmeticMixin
     10 from .spectral_axis import SpectralAxis
     11 from .spectrum_mixin import OneDSpectrumMixin

File ~\anaconda3\lib\site-packages\astropy\nddata\__init__.py:14
     11 from astropy import config as _config
     13 from .bitmask import *
---> 14 from .blocks import *
     15 from .ccddata import *
     16 from .compat import *

File ~\anaconda3\lib\site-packages\astropy\nddata\blocks.py:8
      2 """
      3 This module includes helper functions for array operations.
      4 """
      6 import numpy as np
----> 8 from .decorators import support_nddata
     10 __all__ = ["reshape_as_blocks", "block_reduce", "block_replicate"]
     13 def _process_block_inputs(data, block_size):

File ~\anaconda3\lib\site-packages\astropy\nddata\decorators.py:12
      8 from itertools import islice
     10 from astropy.utils.exceptions import AstropyUserWarning
---> 12 from .nddata import NDData
     14 __all__ = ["support_nddata"]
     17 # All supported properties are optional except "data" which is mandatory!

File ~\anaconda3\lib\site-packages\astropy\nddata\nddata.py:13
     11 from astropy.utils.masked import Masked, MaskedNDArray
     12 from astropy.utils.metadata import MetaData
---> 13 from astropy.wcs.wcsapi import SlicedLowLevelWCS  # noqa: F401
     14 from astropy.wcs.wcsapi import BaseHighLevelWCS, BaseLowLevelWCS, HighLevelWCSWrapper
     16 from .nddata_base import NDDataBase

File ~\anaconda3\lib\site-packages\astropy\wcs\__init__.py:27
      1 # Licensed under a 3-clause BSD style license - see LICENSE.rst
      2 """World Coordinate System (WCS) transformations in FITS files.
      3 
      4 .. _wcslib: https://www.atnf.csiro.au/people/mcalabre/WCS/wcslib/index.html
   (...)
     24 a standard pipeline.
     25 """
---> 27 from . import utils
     28 from .wcs import *
     29 from .wcs import InvalidTabularParametersError  # just for docs

File ~\anaconda3\lib\site-packages\astropy\wcs\utils.py:8
      5 import numpy as np
      7 import astropy.units as u
----> 8 from astropy.coordinates import ITRS, CartesianRepresentation, SphericalRepresentation
      9 from astropy.utils import unbroadcast
     11 from .wcs import WCS, WCSSUB_LATITUDE, WCSSUB_LONGITUDE

File ~\anaconda3\lib\site-packages\astropy\coordinates\__init__.py:9
      1 # Licensed under a 3-clause BSD style license - see LICENSE.rst
      3 """
      4 This subpackage contains classes and functions for celestial coordinates
      5 of astronomical objects. It also contains a framework for conversions
      6 between coordinate systems.
      7 """
---> 9 from .angle_utilities import *
     10 from .angles import *
     11 from .attributes import *

File ~\anaconda3\lib\site-packages\astropy\coordinates\angle_utilities.py:21
     19 # Astropy
     20 import astropy.units as u
---> 21 from astropy.coordinates.representation import (
     22     SphericalRepresentation,
     23     UnitSphericalRepresentation,
     24 )
     26 _TWOPI = 2 * np.pi
     29 def angular_separation(lon1, lat1, lon2, lat2):

File ~\anaconda3\lib\site-packages\astropy\coordinates\representation\__init__.py:6
      1 """
      2 In this module, we define the coordinate representation classes, which are
      3 used to represent low-level cartesian, spherical, cylindrical, and other
      4 coordinates.
      5 """
---> 6 from .base import BaseDifferential, BaseRepresentation, BaseRepresentationOrDifferential
      7 from .cartesian import CartesianDifferential, CartesianRepresentation
      8 from .cylindrical import CylindricalDifferential, CylindricalRepresentation

File ~\anaconda3\lib\site-packages\astropy\coordinates\representation\base.py:12
      9 import numpy as np
     11 import astropy.units as u
---> 12 from astropy.coordinates.angles import Angle
     13 from astropy.utils import ShapedLikeNDArray, classproperty
     14 from astropy.utils.data_info import MixinInfo

File ~\anaconda3\lib\site-packages\astropy\coordinates\angles\__init__.py:11
      9 from .core import *
     10 from .errors import *
---> 11 from .utils import *
     13 # isort: split
     14 from . import core as _core

File ~\anaconda3\lib\site-packages\astropy\coordinates\angles\utils.py:21
     19 # Astropy
     20 import astropy.units as u
---> 21 from astropy.coordinates.representation import (
     22     SphericalRepresentation,
     23     UnitSphericalRepresentation,
     24 )
     26 _TWOPI = 2 * np.pi
     29 def angular_separation(lon1, lat1, lon2, lat2):

ImportError: cannot import name 'SphericalRepresentation' from partially initialized module 'astropy.coordinates.representation' (most likely due to a circular import) (C:\Users\konto\anaconda3\lib\site-packages\astropy\coordinates\representation\__init__.py)

解决方案建议

  1. 降级到兼容版本:直接安装实验室验证过的稳定版本:
    pip install astropy==5.3.4 specutils==1.11.0 numpy==1.23.5 plotly==5.18.0
    
    若使用Anaconda环境,优先用conda安装避免依赖冲突:
    conda install astropy=5.3.4 specutils=1.11.0 numpy=1.23.5 plotly=5.18.0
    
  2. 统一环境包路径:从回溯信息可见,specutils安装在用户目录,astropy在Anaconda目录,版本可能不匹配。卸载用户目录下的specutils,再在Anaconda环境重新安装:
    pip uninstall specutils
    
  3. 清理缓存重装:若降级后仍有问题,清理Python缓存并强制重装:
    pip cache purge
    pip install --force-reinstall astropy==5.3.4 specutils==1.11.0 numpy==1.23.5 plotly==5.18.0
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 05:47:05