본문 바로가기

프로그래밍/Python

윈도우용 파이썬 3.8 버전에서 pip install kivy 로 설치가 안 된다.

반응형

2020년 12월 9일

kivy 로 android 개발을 할 수 있다는 이야기를 들어서, kivy 를 한번 설치해 보았다. 그런데, pip install kivy 를 실행하였더니 엄청난 에러와 함께 설치가 실패했다.

환경은 : windows 10, python 3.8 64 bit, venv 로 만들어 놓은 가상환경.위 내

 

(v3864) C:\PYENVS>pip install kivy
Collecting kivy
  Using cached Kivy-1.11.1.tar.gz (23.6 MB)
    ERROR: Command errored out with exit status 1:
     command: 'c:\pyenvs\v3864\scripts\python.exe' -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\dwyoo\\AppData\\Local\\Temp\\pip-install-5q5cy0vc\\kivy_94110e505e9f425ca06e32d95e031e7f\\setup.py'"'"'; __file__='"'"'C:\\Users\\dwyoo\\AppData\\Local\\Temp\\pip-install-5q5cy0vc\\kivy_94110e505e9f425ca06e32d95e031e7f\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\dwyoo\AppData\Local\Temp\pip-pip-egg-info-k328_0hq'
         cwd: C:\Users\dwyoo\AppData\Local\Temp\pip-install-5q5cy0vc\kivy_94110e505e9f425ca06e32d95e031e7f\
    Complete output (396 lines):
    fatal: not a git repository (or any of the parent directories): .git
    WARNING: Skipping page https://github.com/kivy-garden/garden/archive/master.zip because the HEAD request got Content-Type: application/zip.The only supported Content-Type is text/html
      ERROR: Command errored out with exit status 1:
       command: 'c:\pyenvs\v3864\scripts\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\dwyoo\\AppData\\Local\\Temp\\pip-wheel-doxr6m5q\\cython_73fac2393c7c441996d8b01d828c2dd1\\setup.py'"'"'; __file__='"'"'C:\\Users\\dwyoo\\AppData\\Local\\Temp\\pip-wheel-doxr6m5q\\cython_73fac2393c7c441996d8b01d828c2dd1\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d 'C:\Users\dwyoo\AppData\Local\Temp\pip-wheel-n__1tzvf'
           cwd: C:\Users\dwyoo\AppData\Local\Temp\pip-wheel-doxr6m5q\cython_73fac2393c7c441996d8b01d828c2dd1\
      Complete output (321 lines):
      Unable to find pgen, not compiling formal grammar.
      running bdist_wheel
      running build
      running build_py
      creating build

위 내용은 에러메시지의 시작부분. Kivy-1.11.1.tar.gz 를 다운받아서 깔려고 하고 있다. tar.gz 는 플랫폼에 맞게 빌드된 것이 아니라, 소스를 내려받아 설치하려고 한다는 뜻이다. kivy 와 같이 거대한 패키지의 경우 tar.gz 을 받는다면, 십중팔구 설치에 문제가 발생한다.

소스를 임시폴더에 풀꼬, 그 안의 소스로 빌드를 시작했다.

      copying Cython\Utility\Overflow.c -> build\lib.win-amd64-3.8\Cython\Utility
      copying Cython\Utility\Printing.c -> build\lib.win-amd64-3.8\Cython\Utility
      copying Cython\Utility\Profile.c -> build\lib.win-amd64-3.8\Cython\Utility
      copying Cython\Utility\StringTools.c -> build\lib.win-amd64-3.8\Cython\Utility
      copying Cython\Utility\TestUtilityLoader.c -> build\lib.win-amd64-3.8\Cython\Utility
      copying Cython\Utility\TypeConversion.c -> build\lib.win-amd64-3.8\Cython\Utility
      copying Cython\Utility\arrayarray.h -> build\lib.win-amd64-3.8\Cython\Utility
      copying Cython\Utility\CppSupport.cpp -> build\lib.win-amd64-3.8\Cython\Utility
      running build_ext
      building 'Cython.Plex.Scanners' extension
      error: Microsoft Visual C++ 14.0 is required. Get it with "Build Tools for Visual Studio": https://visualstudio.microsoft.com/downloads/
      ----------------------------------------
      ERROR: Failed building wheel for cython
    ERROR: Failed to build one or more wheels
     Traceback (most recent call last):
       File "c:\pyenvs\v3864\lib\site-packages\setuptools\installer.py", line 128, in fetch_build_egg
         subprocess.check_call(cmd)
       File "C:\Programs\Python3864\lib\subprocess.py", line 364, in check_call
         raise CalledProcessError(retcode, cmd)
     subprocess.CalledProcessError: Command '['c:\\pyenvs\\v3864\\scripts\\python.exe', '-m', 'pip', '--disable-pip-version-check', 'wheel', '--no-deps', '-w', 'C:\\Users\\dwyoo\\AppData\\Local\\Temp\\tmptos30mw1', '--quiet', '--find-links', 'https://github.com/kivy-garden/garden/archive/master.zip', 'cython!=0.27,!=0.27.2,<=0.29.10,>=0.24']' returned non-zero exit status 1.

 

에러의 중간부분 Microsoft Visual C++ 14.0 is required. 라는 부분이 나온다. 소스파일 중에 c, cpp 소스가 있어서, 이걸 빌드하여 설치를 하려고 한다. 빌드환경을 설치하면 이 부분은 넘어가겠지만, 다른 에러가 나올 가능성도 다분하다. 패키지 설치하나 하면서 이런 고생은 하고 싶지 않다.

그래서 어찌할까 확인한다. 내가 원하는 건, 내 환경 ( 윈도우 64비트, 파이썬 3.8 ) 용 미리빌드된 설치파일이다. pip 로 설치되는 패키지들이 있는 pypi 웹사이트에 가본다. (구글로 pypi kivy 로 검색하면, pypi.org/project/Kivy 페이지를 찾아준다. 여기에서 옆의 메뉴의 downloads 를 누르면 pypi.org/project/Kivy/#files 페이지로 넘어가서 pip 로 내려받을 수 있는 파일들의 목록이 나온다.

여기서 보면, 파일명으로 어떤 플랫폼 용 파일인지를 알 수 있다. 예를 들어, Kivy-1.11.1-cp36-cp36m-win_amd64.whl 파일은 kivy 1.11.1 패키지의 c 파이썬 3.6 윈도우 64비트 용 파일이다. Kivy-1.11.1-cp37-cp37m-manylinux2010_x86_64.whl 파일은 kivy 1.11.1 패키지의 c 파이썬 3.7 리눅스 64비트용 파일이다.

이 목록의 오른쪽 두번째 컬럼에 cp36, cp37 등등이 다시 따로 쓰여져 있다. 보면, cp38 은 없다. 즉, 파이썬 3.8 용으로 미리 빌드된 설치패키지는 아직 존재하지 않는다는 뜻이다. 그래서, 제일 마지막에 있는 소스파일이 내려받아졌고, pip 는 이 소스파일을 어찌어찌 빌드하려고 했었고, 빌드환경이 없기 때문에 설치가 실패한 것이다.

그럼, 해결방법은 나왔다. 파이썬 3.7 64비트 환경을 꾸며서 설치하면 된다. (파이썬 3.8의 기능을 못 쓴다는 게 아쉽지만, 3.7도 2020년 현재 그런대로 쓰기 괜찮은 버전이다.)

나는 3.7 환경도 만들어두고 있다. 3.7 환경에서 설치해 보았다. 아래 설치명령을 보면, 위 목록에서 보았던, cp37-cp38 어쩌고 whl 파일이 받아져서 깔끔하게 설치된 것을 볼 수 있다. 

(v3764) C:\PYENVS>pip install kivy
Collecting kivy
  Using cached Kivy-1.11.1-cp37-cp37m-win_amd64.whl (4.1 MB)
Requirement already satisfied: pygments in c:\pyenvs\v3764\lib\site-packages (from kivy) (2.7.0)
Requirement already satisfied: docutils in c:\pyenvs\v3764\lib\site-packages (from kivy) (0.16)
Requirement already satisfied: Kivy-Garden>=0.1.4 in c:\pyenvs\v3764\lib\site-packages (from kivy) (0.1.4)
Requirement already satisfied: requests in c:\pyenvs\v3764\lib\site-packages (from Kivy-Garden>=0.1.4->kivy) (2.24.0)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in c:\pyenvs\v3764\lib\site-packages (from requests->Kivy-Garden>=0.1.4->kivy) (1.25.10)
Requirement already satisfied: certifi>=2017.4.17 in c:\pyenvs\v3764\lib\site-packages (from requests->Kivy-Garden>=0.1.4->kivy) (2020.6.20)
Requirement already satisfied: chardet<4,>=3.0.2 in c:\pyenvs\v3764\lib\site-packages (from requests->Kivy-Garden>=0.1.4->kivy) (3.0.4)
Requirement already satisfied: idna<3,>=2.5 in c:\pyenvs\v3764\lib\site-packages (from requests->Kivy-Garden>=0.1.4->kivy) (2.10)
Installing collected packages: kivy
Successfully installed kivy-1.11.1

 

see also : daewonyoon.tistory.com/337

 

728x90