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)