그누보드6 설치후 실행 안됩니다

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
그누보드6 설치후 실행 안됩니다

QA

그누보드6 설치후 실행 안됩니다

답변 2

본문

환경은 윈도우11에서 진행 했구요

가상환경 만들어서 실행함

INFO:     Will watch for changes in these directories: ['F:\\python\\te\\g6']
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [1644] using WatchFiles
Process SpawnProcess-1:
Traceback (most recent call last):
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.3568.0_x64__qbz5n2kfra8p0\lib\multiprocessing\process.py", line 315, in _bootstrap
    self.run()
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.3568.0_x64__qbz5n2kfra8p0\lib\multiprocessing\process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "F:\python\te\lib\site-packages\uvicorn\_subprocess.py", line 80, in subprocess_started
    target(sockets=sockets)
  File "F:\python\te\lib\site-packages\uvicorn\server.py", line 65, in run
    return asyncio.run(self.serve(sockets=sockets))
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.3568.0_x64__qbz5n2kfra8p0\lib\asyncio\runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.3568.0_x64__qbz5n2kfra8p0\lib\asyncio\base_events.py", line 647, in run_until_complete
    return future.result()
  File "F:\python\te\lib\site-packages\uvicorn\server.py", line 69, in serve
    await self._serve(sockets)
  File "F:\python\te\lib\site-packages\uvicorn\server.py", line 76, in _serve
    config.load()
  File "F:\python\te\lib\site-packages\uvicorn\config.py", line 434, in load
    self.loaded_app = import_from_string(self.app)
  File "F:\python\te\lib\site-packages\uvicorn\importer.py", line 19, in import_from_string
    module = importlib.import_module(module_str)
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.3568.0_x64__qbz5n2kfra8p0\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "F:\python\te\g6\main.py", line 22, in <module>
    from core.routers import router as template_router
  File "F:\python\te\g6\core\routers.py", line 5, in <module>
    from bbs.board import router as board_router
  File "F:\python\te\g6\bbs\board.py", line 27, in <module>
    from service.board import (
  File "F:\python\te\g6\service\board\__init__.py", line 1, in <module>
    from .board import BoardService
  File "F:\python\te\g6\service\board\board.py", line 20, in <module>
    from lib.slowapi.create_post_limit.limiter import validate_slowapi_create_post
  File "F:\python\te\g6\lib\slowapi\__init__.py", line 10, in <module>
    class CustomConfig(Config):
  File "F:\python\te\g6\lib\slowapi\__init__.py", line 12, in CustomConfig
    def _read_file(self, file_name: str | Path) -> dict[str, str]:
TypeError: unsupported operand type(s) for |: 'type' and 'type'

이 질문에 댓글 쓰기 :

답변 2

순정 상태에서 실행이 안된다면

서버 상태가 그누보드6의 요구사항 부합되지 않아서 그렇습니다.

-  def _read_file(self, file_name: str | Path) -> dict[str, str]:

    이 코드의 에러 같습니다.

 

※ 문제는 Python 버전 호환성 때문입니다.

코드에서 사용된 | 연산자는 Python 3.10 이상에서 지원되는 새로운 유형 힌팅 구문으로,

Python 3.9에서는 지원되지 않아 str | Path와 같은 표현을 사용할 수 없습니다.

이를 해결하려면 Python을 3.10 이상으로 업그레이드하거나,

기존 코드를 수정하여 typing 모듈의 Union을 사용하는 방식으로 변경해야 합니다.

예를 들어, from typing import Unionfrom pathlib import Path를 임포트한 뒤,

 def _read_file(self, file_name: Union[str, Path]) -> dict[str, str]:

이와 같이 수정하면 Python 3.9에서도 호환될 수 있습니다.

 

♣ 해결 방법~

  - 아래는, Python 3.10 이상으로 업그레이드 라이브러리의 코드를 수정하지 않고,

현재 환경의 Python 버전을 3.10 이상으로 업그레이드합니다.

  - lib/slowapi/__init__.py 파일을 열어,

_read_file 메서드의 정의를 아래와 같이 수정합니다.


from typing import Union
from pathlib import Path
def _read_file(self, file_name: Union[str, Path]) -> dict[str, str]:

  - slowapi 라이브러리를 최신 버전으로 업데이트합니다


pip install --upgrade slowapi

 

♣ Python 3.10 이상으로 업그레이드하는 것이 가장 간단하며,

위의 예시는, 라이브러리 업데이트 또는 직접 수정을 통해 문제를 해결하는 것입니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 0
© SIRSOFT
현재 페이지 제일 처음으로