Circular import error with astropy.coordinates.representation

235 Views Asked by At

I'm trying to import astropy.coordinates.representation in a Jupyter notebook and I get a circular import error:

> 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)

To be accurate, I was initially trying to import specutils as seen in the code below, and that bit caused an error. However, just importing astropy.coordinates.representation on a separate empty notebook does the same. I checked that all the libraries are up to date. How do I resolve this?

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

Update: I didn't figure out the cause, but I was able to import everything fine when I used the versions the lab environments had:

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

Entire traceback message:

---------------------------------------------------------------------------
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)
0

There are 0 best solutions below