我正在尝试使用这个安装 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 的问题。`
我该如何解决这个问题?
问题是你正在使用 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 的分支,并且更有特色)