Why does uvicorn not find my modules that are in the same folder as my main.py?

29 views Asked by At

Im trying to build a fastapi python backend. My Backend Structure is basically this:

backend/
  src/

and in backend/src/ are all of my python files (main, crud, db, models) also a init.py.

but when trying to run my backend via uvicorn i keep getting errors like: ModuleNotFoundError: No module named 'crud' aswell as a long list of different Errors like

File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "C:\Users\dietz\AppData\Local\Programs\Python\Python310\lib\asyncio\runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "C:\Users\dietz\AppData\Local\Programs\Python\Python310\lib\asyncio\base_events.py", line 649, in run_until_complete
    return future.result()
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "C:\Users\dietz\Desktop\Code\ToDo\backend\venv\lib\site-packages\uvicorn\server.py", line 68, in serve
    config.load()
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "C:\Users\dietz\Desktop\Code\ToDo\backend\venv\lib\site-packages\uvicorn\config.py", line 467, in load
    self.loaded_app = import_from_string(self.app)
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "C:\Users\dietz\Desktop\Code\ToDo\backend\venv\lib\site-packages\uvicorn\importer.py", line 24, in import_from_string
    raise exc from None

I am basically still a noob so this might be a obvious thing im missing.

I tried running the backend with a init.py in my src folder and also without (python 3.10) ive tried running uvicorn with literally just uvicorn src.main:app or also like this: uvicorn src.main:app --host 0.0.0.0 --port 8000. Ive both tried VSC and Pycharm. And ive set my src folder as Sources Root. Im also activating my venv before i run it

0

There are 0 answers