获取在 Windows 上构建 wheel-error Pygame 的要求

问题描述 投票:0回答:1

我正在尝试使用这个安装 Pygame:

pip install pygame
我得到这个结果: ` pip 安装 pygame 收集pygame 使用缓存的 pygame-2.4.0.tar.gz (13.2 MB) 安装构建依赖项...完成 获取构建轮子的要求...错误 错误:子进程因错误而退出

× getting requirements to build wheel 没有运行成功。 │ 退出代码:1 ╰─> [85行输出]

  WARNING, No "Setup" File Exists, Running "buildconfig/config.py"
  Using WINDOWS configuration...

  Making dir :prebuilt_downloads:
  Downloading... https://www.libsdl.org/release/SDL2-devel-2.26.4-VC.zip 0dea77fd5ead8c1a2134af3fc256578327e25879
  Unzipping :prebuilt_downloads\SDL2-devel-2.26.4-VC.zip:
  Downloading... https://www.libsdl.org/projects/SDL_image/release/SDL2_image-devel-2.0.5-VC.zip 137f86474691f4e12e76e07d58d5920c8d844d5b
  Unzipping :prebuilt_downloads\SDL2_image-devel-2.0.5-VC.zip:
  Downloading... https://github.com/libsdl-org/SDL_ttf/releases/download/release-2.20.1/SDL2_ttf-devel-2.20.1-VC.zip 371606aceba450384428fd2852f73d2f6290b136
  Unzipping :prebuilt_downloads\SDL2_ttf-devel-2.20.1-VC.zip:
  Downloading... https://github.com/libsdl-org/SDL_mixer/releases/download/release-2.6.2/SDL2_mixer-devel-2.6.2-VC.zip 000e3ea8a50261d46dbd200fb450b93c59ed4482
  Unzipping :prebuilt_downloads\SDL2_mixer-devel-2.6.2-VC.zip:
  Downloading... https://github.com/pygame/pygame/releases/download/2.1.3.dev4/prebuilt-x64-pygame-2.1.4-20220319.zip 16b46596744ce9ef80e7e40fa72ddbafef1cf586
  Unzipping :prebuilt_downloads\prebuilt-x64-pygame-2.1.4-20220319.zip:
  copying into .\prebuilt-x64
  Path for SDL: prebuilt-x64\SDL2-2.26.4
  ...Library directory for SDL: prebuilt-x64/SDL2-2.26.4/lib/x64
  ...Include directory for SDL: prebuilt-x64/SDL2-2.26.4/include
  Path for FONT: prebuilt-x64\SDL2_ttf-2.20.1
  ...Library directory for FONT: prebuilt-x64/SDL2_ttf-2.20.1/lib/x64
  ...Include directory for FONT: prebuilt-x64/SDL2_ttf-2.20.1/include
  Path for IMAGE: prebuilt-x64\SDL2_image-2.0.5
  ...Library directory for IMAGE: prebuilt-x64/SDL2_image-2.0.5/lib/x64
  ...Include directory for IMAGE: prebuilt-x64/SDL2_image-2.0.5/include
  Path for MIXER: prebuilt-x64\SDL2_mixer-2.6.2
  ...Library directory for MIXER: prebuilt-x64/SDL2_mixer-2.6.2/lib/x64
  ...Include directory for MIXER: prebuilt-x64/SDL2_mixer-2.6.2/include
  Path for PORTMIDI: prebuilt-x64
  ...Library directory for PORTMIDI: prebuilt-x64/lib
  ...Include directory for PORTMIDI: prebuilt-x64/include
  DLL for SDL2: prebuilt-x64/SDL2-2.26.4/lib/x64/SDL2.dll
  DLL for SDL2_ttf: prebuilt-x64/SDL2_ttf-2.20.1/lib/x64/SDL2_ttf.dll
  DLL for SDL2_image: prebuilt-x64/SDL2_image-2.0.5/lib/x64/SDL2_image.dll
  DLL for SDL2_mixer: prebuilt-x64/SDL2_mixer-2.6.2/lib/x64/SDL2_mixer.dll
  DLL for portmidi: prebuilt-x64/lib/portmidi.dll
  Path for FREETYPE: prebuilt-x64
  ...Library directory for FREETYPE: prebuilt-x64/lib
  ...Include directory for FREETYPE: prebuilt-x64/include
  Path for PNG not found.
  ...Found include dir but no library dir in prebuilt-x64.
  Path for JPEG not found.
  ...Found include dir but no library dir in prebuilt-x64.
  DLL for freetype: prebuilt-x64/lib/freetype.dll
  DLL for png: prebuilt-x64/SDL2_image-2.0.5/lib/x64/libpng16-16.dll

  ---
  For help with compilation see:
      https://www.pygame.org/wiki/CompileWindows
  To contribute to pygame development see:
      https://www.pygame.org/contribute.html
  ---

  Traceback (most recent call last):
    File "C:\msys64\mingw64\lib\python3.9\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 353, in <module>
      main()
    File "C:\msys64\mingw64\lib\python3.9\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 335, in main
      json_out['return_val'] = hook(**hook_input['kwargs'])
    File "C:\msys64\mingw64\lib\python3.9\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 118, in get_requires_for_build_wheel
      return hook(config_settings)
    File "C:\Users\Valentina\AppData\Local\Temp\pip-build-env-t2ium7tq\overlay\lib\python3.9\site-packages\setuptools\build_meta.py", line 341, in get_requires_for_build_wheel
      return self._get_build_requires(config_settings, requirements=['wheel'])
    File "C:\Users\Valentina\AppData\Local\Temp\pip-build-env-t2ium7tq\overlay\lib\python3.9\site-packages\setuptools\build_meta.py", line 323, in _get_build_requires
      self.run_setup()
    File "C:\Users\Valentina\AppData\Local\Temp\pip-build-env-t2ium7tq\overlay\lib\python3.9\site-packages\setuptools\build_meta.py", line 487, in run_setup
      super(_BuildMetaLegacyBackend,
    File "C:\Users\Valentina\AppData\Local\Temp\pip-build-env-t2ium7tq\overlay\lib\python3.9\site-packages\setuptools\build_meta.py", line 338, in run_setup
      exec(code, locals())
    File "<string>", line 400, in <module>
    File "C:\Users\Valentina\AppData\Local\Temp\pip-install-v1elzk2b\pygame_0d0bf7baf2bf4e4585850a5e3fb956c0\buildconfig\config.py", line 231, in main
      deps = CFG.main(**kwds, auto_config=auto)
    File "C:\Users\Valentina\AppData\Local\Temp\pip-install-v1elzk2b\pygame_0d0bf7baf2bf4e4585850a5e3fb956c0\buildconfig\config_win.py", line 493, in main
      return setup_prebuilt_sdl2(prebuilt_dir)
    File "C:\Users\Valentina\AppData\Local\Temp\pip-install-v1elzk2b\pygame_0d0bf7baf2bf4e4585850a5e3fb956c0\buildconfig\config_win.py", line 453, in setup_prebuilt_sdl2
      DEPS.configure()
    File "C:\Users\Valentina\AppData\Local\Temp\pip-install-v1elzk2b\pygame_0d0bf7baf2bf4e4585850a5e3fb956c0\buildconfig\config_win.py", line 336, in configure
      from . import vstools
    File "C:\Users\Valentina\AppData\Local\Temp\pip-install-v1elzk2b\pygame_0d0bf7baf2bf4e4585850a5e3fb956c0\buildconfig\vstools.py", line 8, in <module>
      compiler.initialize()
    File "C:\Users\Valentina\AppData\Local\Temp\pip-build-env-t2ium7tq\overlay\lib\python3.9\site-packages\setuptools\_distutils\msvccompiler.py", line 288, in initialize
      self.__paths = self.get_msvc_paths("path")
    File "C:\Users\Valentina\AppData\Local\Temp\pip-build-env-t2ium7tq\overlay\lib\python3.9\site-packages\setuptools\_distutils\msvccompiler.py", line 647, in get_msvc_paths
      r"\Win32 (%s)\Directories" % (self.__root, platform)
  AttributeError: 'MSVCCompiler' object has no attribute '_MSVCCompiler__root'
  [end of output]

注意:此错误源自子进程,可能不是 pip 的问题。 错误:子进程因错误而退出

× getting requirements to build wheel 没有运行成功。 │ 退出代码:1 ╰─> 见上文输出。

注意:此错误源自子进程,可能不是 pip 的问题。`

我该如何解决这个问题?

python windows pygame package pycharm
1个回答
0
投票

问题是你正在使用 mingw Python.

Python 包的 Windows 轮(二进制文件)是用 MSVC 构建的,因为 Python.org Python 安装是用 MSVC 构建的。这确保了兼容性。

因此,由于您拥有非官方版本的 Python,它会检测到不兼容性并发现它必须从源代码构建 pygame。

到目前为止,解决这个问题的最简单方法是使用标准的 Python 安装。这并不意味着您必须卸载现有的 Python,两者可以共存。在 Windows 上,您可以使用

py
命令管理不同版本的 python。 (
py -0
列出,
py -{version}
执行该版本)。

在构建配置中有一些对 MSYS2 东西的源代码支持,但我不知道如何使用它。 https://github.com/pygame-community/pygame-ce/commit/78b0574e493988878aafb37945f93c78ddc21a94 (我链接了 pygame-ce 而不是 pygame,因为 pygame-ce 是我帮助维护的 pygame 的分支,并且更有特色)

© www.soinside.com 2019 - 2024. All rights reserved.