카테고리 없음

python] 오류

진열사랑 2025. 5. 14. 21:38

C:\mindone\venvs\SWMM4IIPBS\Scripts\python.exe -m flask run --host=0.0.0.0 --no-reload --no-debugger --port=5001 
Traceback (most recent call last):
  File "C:\Users\dongsilove\AppData\Local\Programs\Python\Python38\lib\runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\Users\dongsilove\AppData\Local\Programs\Python\Python38\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "C:\mindone\venvs\SWMM4IIPBS\lib\site-packages\flask\__main__.py", line 3, in <module>
    main()
  File "C:\mindone\venvs\SWMM4IIPBS\lib\site-packages\flask\cli.py", line 1105, in main
    cli.main()
  File "C:\mindone\venvs\SWMM4IIPBS\lib\site-packages\click\core.py", line 1082, in main
    rv = self.invoke(ctx)
  File "C:\mindone\venvs\SWMM4IIPBS\lib\site-packages\click\core.py", line 1697, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "C:\mindone\venvs\SWMM4IIPBS\lib\site-packages\click\core.py", line 1443, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "C:\mindone\venvs\SWMM4IIPBS\lib\site-packages\click\core.py", line 788, in invoke
    return __callback(*args, **kwargs)
  File "C:\mindone\venvs\SWMM4IIPBS\lib\site-packages\click\decorators.py", line 92, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "C:\mindone\venvs\SWMM4IIPBS\lib\site-packages\click\core.py", line 788, in invoke
    return __callback(*args, **kwargs)
  File "C:\mindone\venvs\SWMM4IIPBS\lib\site-packages\flask\cli.py", line 953, in run_command
    raise e from None
  File "C:\mindone\venvs\SWMM4IIPBS\lib\site-packages\flask\cli.py", line 937, in run_command
    app: WSGIApplication = info.load_app()
  File "C:\mindone\venvs\SWMM4IIPBS\lib\site-packages\flask\cli.py", line 335, in load_app
    app = locate_app(import_name, name)
  File "C:\mindone\venvs\SWMM4IIPBS\lib\site-packages\flask\cli.py", line 245, in locate_app
    __import__(module_name)
  File "C:\mindone\flask\SWMM4IIPBS\app.py", line 7, in <module>
    from core.OnlineRunInfiltration import OnlineRunInfiltration
  File "C:\mindone\flask\SWMM4IIPBS\core\OnlineRunInfiltration.py", line 2, in <module>
    from swmm_api import read_inp_file
  File "C:\mindone\venvs\SWMM4IIPBS\lib\site-packages\swmm_api\__init__.py", line 3, in <module>
    from .output_file import read_out_file, SwmmOutput, out2frame
  File "C:\mindone\venvs\SWMM4IIPBS\lib\site-packages\swmm_api\output_file\__init__.py", line 1, in <module>
    from .out import read_out_file, SwmmOutput, out2frame
  File "C:\mindone\venvs\SWMM4IIPBS\lib\site-packages\swmm_api\output_file\out.py", line 29, in <module>
    class SwmmOutput(SwmmOutExtract):
  File "C:\mindone\venvs\SWMM4IIPBS\lib\site-packages\swmm_api\output_file\out.py", line 60, in SwmmOutput
    filename: str | Path
TypeError: unsupported operand type(s) for |: 'type' and 'type'

종료 코드 1(으)로 완료된 프로세스

 

 

오류 메시지를 보면 핵심적인 문제는 다음과 같습니다:

TypeError: unsupported operand type(s) for |: 'type' and 'type'

이 오류는 다음 코드에서 발생하고 있습니다:

filename: str | Path

문제 원인

str | Path는 Python 3.10 이상에서만 지원되는 유니언 타입 표기법입니다. (| 연산자를 타입 힌트로 사용하는 방식)

하지만 당신의 환경에서는 Python 3.8을 사용 중입니다:

File "C:\Users\dongsilove\AppData\Local\Programs\Python\Python38\lib\runpy.py"

따라서 Python 3.8에서는 str | Path를 사용할 수 없습니다.


해결 방법

  1. 유니언 표기법을 호환되게 변경하기
    from typing import Union
    filename: Union[str, Path]
    
  2. str | Path를 Python 3.8 호환 방식으로 바꾸세요:
  3. 또는 Python 3.10 이상으로 업그레이드
  4. 해당 표기법을 그대로 사용하고 싶다면 Python 버전을 3.10 이상으로 업그레이드해야 합니다.

추천

  • 만약 프로젝트가 다른 라이브러리들과의 호환성 때문에 Python 3.8에 머물러야 한다면, typing.Union 방식으로 코드를 수정하는 것이 안전합니다.
  • 그렇지 않다면 Python 3.11로 업그레이드하는 것도 고려해볼 만합니다. (성능 향상 포함)

필요하시면 해당 부분을 자동으로 수정해주는 스크립트나 도구도 도와드릴 수 있습니다.