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

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

QA

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

본문

환경은 윈도우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 이상으로 업그레이드하는 것이 가장 간단하며,

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

답변을 작성하시기 전에 로그인 해주세요.
전체 0
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT