我正在尝试使用以下命令安装Pygame:pip install pygame
得到这个结果:` pip install pygame Collecting pygame Using cached pygame-2.4.0.tar.gz(13.2 MB)Installing build dependencies...已完成获取生成wheel的要求...错误错误:子进程出错退出
×获取构建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的问题。错误:subprocess-exited-with-error
×获取构建wheel的要求未成功运行。│退出代码:1 ─>输出见上。
注意:这个错误来自一个子进程,可能不是pip的问题。`
1条答案
按热度按时间7d7tgy0s1#
问题是你正在使用mingw Python。
Python包的Windows wheels(二进制文件)是用MSVC构建的,因为Python.org Python安装是用MSVC构建的。这确保了兼容性。
因此,既然你有一个非官方版本的Python,它就会检测到不兼容性,并发现它必须从源代码构建pygame。
到目前为止,解决这个问题最简单的方法是使用标准的Python安装。这并不意味着您必须卸载现有的Python,两者可以共存。在Windows上,您可以使用
py
命令管理不同版本的python。(py -0
列出,py -{version}
执行该版本)。在构建配置中有一些对MSYS 2的源代码支持,但我不知道如何使用它。https://github.com/pygame-community/pygame-ce/commit/78b0574e493988878aafb37945f93c78ddc21a94(我链接了pygame-ce而不是pygame,因为pygame-ce是我帮助维护的pygame的分支,并且功能更强大)