모도리는 공부중

[Python/Django/Library] Building wheel for backports.zoneinfo (pyproject.toml) ... error, subprocess-exited-with-error 본문

내 지식 정리/PYTHON

[Python/Django/Library] Building wheel for backports.zoneinfo (pyproject.toml) ... error, subprocess-exited-with-error

공부하는 모도리 2023. 4. 9. 23:10
728x90
반응형

django 프레임워크 학습을 위해 클론코딩 프로젝트를 진행하던 중, 회사 노트북에는 v3.8 파이썬으로 진행하고 개인 노트북에는 v3.10 파이썬으로 환경 구성하다가 에러가 발생했다. 글을 작성하는 현 시점 v3.8은 maintenance status가 security이고 v3.10은 bugfix이다.

초반에는 이유를 몰라 그냥 검색하며 헤맸는데, 어떤 글을 읽어보니 무조건 최신 버전을 쓰다보면 지원되지 않는 wheel이 있을 수 있다는 내용을 발견하게 됐다.

아래는 내게 발생한 에러 내용 전문.

Building wheels for collected packages: backports.zoneinfo
  Building wheel for backports.zoneinfo (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for backports.zoneinfo (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [44 lines of output]
      C:\Users\modory\AppData\Local\Temp\pip-build-env-unmt9dj3\overlay\Lib\site-packages\setuptools\config\setupcfg.py:516: SetuptoolsDeprecationWarning: The license_file parameter is deprecated, use license_files instead.
        warnings.warn(msg, warning_class)
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build\lib.win-amd64-cpython-310
      creating build\lib.win-amd64-cpython-310\backports
      copying src\backports\__init__.py -> build\lib.win-amd64-cpython-310\backports
      creating build\lib.win-amd64-cpython-310\backports\zoneinfo
      copying src\backports\zoneinfo\_common.py -> build\lib.win-amd64-cpython-310\backports\zoneinfo
      copying src\backports\zoneinfo\_tzpath.py -> build\lib.win-amd64-cpython-310\backports\zoneinfo
      copying src\backports\zoneinfo\_version.py -> build\lib.win-amd64-cpython-310\backports\zoneinfo
      copying src\backports\zoneinfo\_zoneinfo.py -> build\lib.win-amd64-cpython-310\backports\zoneinfo
      copying src\backports\zoneinfo\__init__.py -> build\lib.win-amd64-cpython-310\backports\zoneinfo
      running egg_info
      writing src\backports.zoneinfo.egg-info\PKG-INFO
      writing dependency_links to src\backports.zoneinfo.egg-info\dependency_links.txt
      writing requirements to src\backports.zoneinfo.egg-info\requires.txt
      writing top-level names to src\backports.zoneinfo.egg-info\top_level.txt
      reading manifest file 'src\backports.zoneinfo.egg-info\SOURCES.txt'
      reading manifest template 'MANIFEST.in'
      warning: no files found matching '*.png' under directory 'docs'
      warning: no files found matching '*.svg' under directory 'docs'
      no previously-included directories found matching 'docs\_build'
      no previously-included directories found matching 'docs\_output'
      adding license file 'LICENSE'
      adding license file 'licenses/LICENSE_APACHE'
      writing manifest file 'src\backports.zoneinfo.egg-info\SOURCES.txt'
      copying src\backports\zoneinfo\__init__.pyi -> build\lib.win-amd64-cpython-310\backports\zoneinfo
      copying src\backports\zoneinfo\py.typed -> build\lib.win-amd64-cpython-310\backports\zoneinfo
      running build_ext
      building 'backports.zoneinfo._czoneinfo' extension
      creating build\temp.win-amd64-cpython-310
      creating build\temp.win-amd64-cpython-310\Release
      creating build\temp.win-amd64-cpython-310\Release\lib
      "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -IC:\Users\siryu\Documents\StudyCoding\djangoStudy\youtube_django_instagram\venv\include -IC:\Python310\include -IC:\Python310\Include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\cppwinrt" /Tclib/zoneinfo_module.c /Fobuild\temp.win-amd64-cpython-310\Release\lib/zoneinfo_module.obj
      zoneinfo_module.c
      lib/zoneinfo_module.c(1): warning C4819: 현재 코드 페이지(949)에서 표시할 수 없는 문자가 파일에 들어 있습니다. 데 이터가 손실되지 않게 하려면 해당 파일을 유니코드 형식으로 저장하십시오.
      lib/zoneinfo_module.c(600): error C2065: '_PyLong_One': 선언되지 않은 식별자입니다.
      lib/zoneinfo_module.c(600): warning C4047: '=': 'PyObject *'의 간접 참조 수준이 'int'과(와) 다릅니다.
      lib/zoneinfo_module.c(1067): warning C4819: 현재 코드 페이지(949)에서 표시할 수 없는 문자가 파일에 들어 있습니다. 데이터가 손실되지 않게 하려면 해당 파일을 유니코드 형식으로 저장하십시오.
      lib/zoneinfo_module.c(2037): warning C4819: 현재 코드 페이지(949)에서 표시할 수 없는 문자가 파일에 들어 있습니다. 데이터가 손실되지 않게 하려면 해당 파일을 유니코드 형식으로 저장하십시오.
      error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.29.30133\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for backports.zoneinfo
Failed to build backports.zoneinfo
ERROR: Could not build wheels for backports.zoneinfo, which is required to install pyproject.toml-based projects

 

검색어: 파이썬 3.10 Building wheel for backports.zoneinfo (pyproject.toml) ... error  error: subprocess-exited-with-error

최상위 글로 뜬 스택오버플로우 글을 참고하니 이유를 알겠더라.

65개의 추천을 받은 인기 답변이 말해주는대로 wheel 미지원 문제가 맞았고, pip 공식 문서(pip install backports.zoneinfo)에서도 미지원하고 있다는 내용이었다.

현재 backports.zoneinfo (pyproject.toml)을 포함한 일부 wheel이 heroku 배포 관련 v3.9 이상에 지원되지 않는 문제가 있었다. 라이브러리 설치 시 파이썬 버전을 v3.8로 낮춰서 진행해야하는 상황으로 보인다.

아래와 같이 수정을 권고하고 있었다. 참고하여 requirements.txt 문서를 수정했다.

backports.zoneinfo==0.2.1;python_version<"3.9"

바꿔주고 나니까 정상 설치되는 모습을 보인다.

(venv) PS C:\Users\modory\Documents\project> pip install -r requirements.txt
Ignoring backports.zoneinfo: markers 'python_version < "3.9"' don't match your environment
Collecting asgiref==3.6.0
  Using cached asgiref-3.6.0-py3-none-any.whl (23 kB)
Collecting autopep8==2.0.2
  Using cached autopep8-2.0.2-py2.py3-none-any.whl (45 kB)
Collecting Django==4.1.7
  Using cached Django-4.1.7-py3-none-any.whl (8.1 MB)
Collecting djangorestframework==3.14.0
  Using cached djangorestframework-3.14.0-py3-none-any.whl (1.1 MB)
Collecting pep8==1.7.1
  Using cached pep8-1.7.1-py2.py3-none-any.whl (41 kB)
Collecting pycodestyle==2.10.0
  Using cached pycodestyle-2.10.0-py2.py3-none-any.whl (41 kB)
Collecting pytz==2023.3
  Using cached pytz-2023.3-py2.py3-none-any.whl (502 kB)
Collecting sqlparse==0.4.3
  Using cached sqlparse-0.4.3-py3-none-any.whl (42 kB)
Collecting tomli==2.0.1
  Using cached tomli-2.0.1-py3-none-any.whl (12 kB)
Collecting tzdata==2023.3
  Using cached tzdata-2023.3-py2.py3-none-any.whl (341 kB)
Installing collected packages: pytz, pep8, tzdata, tomli, sqlparse, pycodestyle, asgiref, Django, autopep8, djangorestframework
Successfully installed Django-4.1.7 asgiref-3.6.0 autopep8-2.0.2 djangorestframework-3.14.0 pep8-1.7.1 pycodestyle-2.10.0 pytz-2023.3 sqlparse-0.4.3 tomli-2.0.1 tzdata-2023.3

설치 완료 후 프로젝트 실행 명령어를 입력하니, 개인 노트북에서 세팅 후 실행은 처음이라 그런지 마이그레이션 명령어가 나타난다.

You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.

이번에는 오류 없기를..

.

.

.

된다!!!! 이제 수정한 requirements.txt에 대한 내용만 git commit에 잘 기입해서 남기도록 해야겠다.

728x90
반응형
Comments