Mysterious K
Mysterious K

Reputation: 79

discord.ext.commands.errors.ExtensionFailed: Extension 'cogs.cloud' raised an error: ValueError: attempted relative import beyond top-level package

So, I was making a Discord bot using Discord.py rewrite but came across this error while loading a cog cogs.cloud.:

Ignoring exception in on_ready
Traceback (most recent call last):
  File "/home/mysteriousk/.local/lib/python3.8/site-packages/discord/ext/commands/bot.py", line 607, in _load_from_module_spec
    spec.loader.exec_module(lib)
  File "<frozen importlib._bootstrap_external>", line 783, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/mysteriousk/Desktop/Epic Bot/cogs/cloud.py", line 5, in <module>
    from .. import main
ValueError: attempted relative import beyond top-level package

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/mysteriousk/.local/lib/python3.8/site-packages/discord/client.py", line 333, in _run_event
    await coro(*args, **kwargs)
  File "main.py", line 357, in on_ready
    bot.load_extension(f"cogs.{filename[:-3]}")
  File "/home/mysteriousk/.local/lib/python3.8/site-packages/discord/ext/commands/bot.py", line 664, in load_extension
    self._load_from_module_spec(spec, name)
  File "/home/mysteriousk/.local/lib/python3.8/site-packages/discord/ext/commands/bot.py", line 610, in _load_from_module_spec
    raise errors.ExtensionFailed(key, e) from e
discord.ext.commands.errors.ExtensionFailed: Extension 'cogs.cloud' raised an error: ValueError: attempted relative import beyond top-level package

The code where I am trying to import the file main.py: from ..main import *

What I tried to do: from ...main import *, from main import *, from .. import main

My file structure:

├──Epic Bot (directory)
    ├── main.py (file)
    ├── cogs (directory)
    |    ├── cloud.py (file)
    |    └── someUnrelatedFiles
    └── someUnrelatedDirs

Upvotes: 0

Views: 1148

Answers (1)

Łukasz Kwieciński
Łukasz Kwieciński

Reputation: 15728

I don't think you've tried import main or from main import *

If you have a file tree like the one you showed, it's gonna work.

Upvotes: 1

Related Questions