Lightning-Universe/lightning-bolts

Cannot import name 'LightningLoggerBase' from 'pytorch_lightning.loggers'

sh3rlock14 opened this issue ยท 16 comments

๐Ÿ› Bug

When trying to import anything from pl_bolts, I get the error: cannot import name 'LightningLoggerBase' from 'pytorch_lightning.loggers'.

To Reproduce

I'm currently using Keggle's pytorch_lightning version 1.9.0, and I saw that from version 1.7.0 it has been deprecated in favour of pytorch_lightning.loggers.logger.Logger but I don't want to downgrade my pl version: is pl_bolts being being updated to reach the more recent versions of pl?

Thanks in advance for your help! ๐Ÿ™๐Ÿป

Having a pl version >=1.7.0

!pip install lightning-bolts
from pl_bolts.datasets import DummyDataset

raises: cannot import name 'LightningLoggerBase' from 'pytorch_lightning.loggers'

Borda commented

it seems to be deprecated/removed from PL, would you be interested in sending fix ๐Ÿฐ

I think it was renamed to Logger in Lightning 1.9.

Looks like there's also another breaking change: pytorch_lightning.utilities.apply_func is now found from lightning_utilities.core.apply_func.

How to keep this backward compatible? We could do this:

try:
    from pytorch_lightning.loggers import Logger
except ImportError:
    from pytorch_lightning.loggers import LightningLoggerBase
    Logger = LightningLoggerBase

try:
    from lightning_utilities.core.apply_func import apply_to_collection
except ImportError:
    from pytorch_lightning.utilities.apply_func import apply_to_collection

Hello there @Borda, I have a few questions if you don't mind:

  • Do you know which specific release combination of pytorch-lightning / lightning_bolts is causing this issue?
  • Could there be a way to avoid these kind of incompatibilities between the two libraries from happening in the future? For example, do you have an idea of how torch / torchvision / torchaudio / etc do it? (in my experience, those seem to be pretty well synchronized, and I've never had any issue of this kind with them)
lightning-bolts==0.6.0.post1
lightning-utilities==0.5.0
pytorch-lightning==1.9.0

Is this problem fixed? I tried it today and still get the same error. My versions are:
lightning-bolts==0.6.0.post1
lightning-utilities==0.6.0.post0
pytorch-lightning==1.9.0

I had the same issue, I could circumvent it by using the following versions:
lightning-bolts==0.6.0.post1
lightning-lite==1.8.0
lightning-utilities==0.3.0
pytorch-lightning==1.8.0

I need PL >=1.9.0 and can't get it work with LB 0.6.0.post1. Is anyone looking into this?

I'm working on this one. PR will follow soon.

any update on this?

any update on this?

I found a PR that addresses the import only, but won't fix other imports.

I'm pushing my PR now. Just writing down the description and making sure the motivation is clear. I updated 4 dependencies to reflect latest releases.

Thanks!

I'm getting this error today. @Borda , what version do I need to be on for the error to go away? I upgraded to 2.0.2 but the error remains.

Also getting this error today:
pytorch-lightning==2.0.2
lightning-bolts==0.6.0.post1

Borda commented

lightning-bolts==0.6.0.post1

Could you please try install from source, it shall be fixed there and we release it soon

Wheest commented

lightning-bolts==0.6.0.post1

Could you please try install from source, it shall be fixed there and we release it soon

Thanks, with:

pytorch-lightning==2.0.2
lightning-bolts==0.6.0.post1

I was able to run my code using bleeding edge with: pip install git+https://github.com/PytorchLightning/lightning-bolts.git@master --upgrade