FastAPI-template icon indicating copy to clipboard operation
FastAPI-template copied to clipboard

Loguru startup error

Open RoyalGoose opened this issue 2 years ago • 13 comments
trafficstars

After initializing blank project with loguru as logger poetry run python -m project_name it gives an error:

Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "C:\Users\User\Documents\Projects\project_name\project_name\__main__.py", line 4, in <module>
    import uvicorn
  File "C:\Users\User\AppData\Local\pypoetry\Cache\virtualenvs\project-name-uwC7DCiD-py3.11\Lib\site-packages\uvicorn\__init__.py", line 1, in <module>
    from uvicorn.config import Config
  File "C:\Users\User\AppData\Local\pypoetry\Cache\virtualenvs\project-name-uwC7DCiD-py3.11\Lib\site-packages\uvicorn\config.py", line 1, in <module>
    import asyncio
  File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\asyncio\__init__.py", line 8, in <module>
    from .base_events import *
  File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\asyncio\base_events.py", line 18, in <module>
    import concurrent.futures
  File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\concurrent\futures\__init__.py", line 8, in <module>
    from concurrent.futures._base import (FIRST_COMPLETED,
  File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\concurrent\futures\_base.py", line 7, in <module>
    import logging
  File "C:\Users\User\Documents\Projects\project_name\project_name\logging.py", line 5, in <module>
    from loguru import logger
  File "C:\Users\User\AppData\Local\pypoetry\Cache\virtualenvs\project-name-uwC7DCiD-py3.11\Lib\site-packages\loguru\__init__.py", line 10, in <module>
    from ._logger import Core as _Core
  File "C:\Users\User\AppData\Local\pypoetry\Cache\virtualenvs\project-name-uwC7DCiD-py3.11\Lib\site-packages\loguru\_logger.py", line 99, in <module>
    from . import _asyncio_loop, _colorama, _defaults, _filters
  File "C:\Users\User\AppData\Local\pypoetry\Cache\virtualenvs\project-name-uwC7DCiD-py3.11\Lib\site-packages\loguru\_asyncio_loop.py", line 27, in <module>
    get_task_loop, get_running_loop = load_loop_functions()
                                      ^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\User\AppData\Local\pypoetry\Cache\virtualenvs\project-name-uwC7DCiD-py3.11\Lib\site-packages\loguru\_asyncio_loop.py", line 11, in load_loop_functions
    get_running_loop = asyncio.get_running_loop
                       ^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: partially initialized module 'asyncio' has no attribute 'get_running_loop' (most likely due to a circular import)

After renaming file project_name/logging.py to project_name/log.py it works

RoyalGoose avatar Oct 02 '23 12:10 RoyalGoose

:thinking: :thinking: :thinking: :thinking:

How could possible asyncio be partially initialized? Can you please give me all parameters you were using from pyproject.toml? Section called [fastapi-template.options].

s3rius avatar Oct 02 '23 14:10 s3rius

Do you have a module called asyncio in your codebase?

s3rius avatar Oct 02 '23 14:10 s3rius

Or any name that can be the same with some modules from the sandard library?

s3rius avatar Oct 02 '23 14:10 s3rius

@s3rius

🤔 🤔 🤔 🤔

How could possible asyncio be partially initialized? Can you please give me all parameters you were using from pyproject.toml? Section called [fastapi-template.options].

[fastapi-template.options]
project_name = "test_template"
api_type = "rest"
enable_redis = "None"
enable_rmq = "None"
ci_type = "gitlab_ci"
enable_migrations = "True"
enable_taskiq = "True"
enable_kube = "True"
kube_name = "test-template"
enable_routers = "True"
enable_kafka = "True"
enable_loguru = "True"
traefik_labels = "True"
add_dummy = "True"
orm = "ormar"
self_hosted_swagger = "None"
prometheus_enabled = "True"
sentry_enabled = "True"
otlp_enabled = "True"
pydanticv1 = "True"
gunicorn = "None"
add_users = "None"
cookie_auth = "None"
jwt_auth = "None"

Do you have a module called asyncio in your codebase?

Only original asyncio library

Or any name that can be the same with some modules from the sandard library?

No

RoyalGoose avatar Oct 02 '23 14:10 RoyalGoose

I have the same for me.

[fastapi-template.options] project_name = "img_store" api_type = "rest" enable_redis = "None" enable_rmq = "None" ci_type = "none" enable_migrations = "True" enable_taskiq = "None" enable_kube = "None" kube_name = "img-store" enable_routers = "True" enable_kafka = "None" enable_loguru = "True" traefik_labels = "None" add_dummy = "True" orm = "sqlalchemy" self_hosted_swagger = "None" prometheus_enabled = "None" sentry_enabled = "None" otlp_enabled = "None" pydanticv1 = "None" gunicorn = "True" add_users = "None" cookie_auth = "None" jwt_auth = "None"

vaavaa avatar Oct 13 '23 17:10 vaavaa

Guess I know the solution for that. Thanks for finding it out.

s3rius avatar Nov 20 '23 15:11 s3rius

Guess I know the solution for that. Thanks for finding it out.

And what's the solution? The problem is still present

mxft avatar Mar 20 '24 19:03 mxft

Fixed it. Just rename logging.py to _logging.py or whatever you want it to be

mxft avatar Mar 20 '24 19:03 mxft

I couldn't find the solution previously. @mxft, that's lit! I'll fix it later.

s3rius avatar Mar 20 '24 19:03 s3rius

Fixed it. Just rename logging.py to _logging.py or whatever you want it to be

Rename does work, but could you please explain what's the bug and how did you come up with that solution ?

ken-kuro avatar Apr 01 '24 08:04 ken-kuro

Rename does work, but could you please explain what's the bug and how did you come up with that solution ?

I didn't dive much into it, but I just though that it has something to do with from logging import ... mixing up in different places, so I just tried to rename the local module since it has the same name and may interfere in some way. It did the job, as you can see.

@s3rius can we expect the repository to be updated in near future? It pretty much seems abandoned at this point, but fixing major problems and bumping some package versions won't take much of your time

mxft avatar Apr 09 '24 22:04 mxft

I see, thanks for your reply

ken-kuro avatar Apr 10 '24 03:04 ken-kuro

The issue was resolved, the logging module was renamed.

s3rius avatar Jul 12 '24 08:07 s3rius