[Python]pip install pygame安装报错解决方案

pip install pygame报错提示:

Microsoft Windows [版本 10.0.17763.3165]
(c) 2018 Microsoft Corporation。保留所有权利。
C:\Users\xxxxxxx>pip install pygame
Collecting pygame
Using cached pygame-2.1.2.tar.gz (10.1 MB)
Preparing metadata (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [77 lines of output]
WARNING, No "Setup" File Exists, Running "buildconfig/config.py"
Using WINDOWS configuration...
Traceback (most recent call last):
File "<string>", line 2, in <module>
File "<pip-setuptools-caller>", line 34, in <module>
File "C:\Users\xxxxxxx\AppData\Local\Temp\pip-install-zqq3q3ot\pygame_1748e02cad70437b8b99abf25c9b1b20\setup.py", line 359, in <module>
buildconfig.config.main(AUTO_CONFIG)
File "C:\Users\xxxxxxx\AppData\Local\Temp\pip-install-zqq3q3ot\pygame_1748e02cad70437b8b99abf25c9b1b20\buildconfig\config.py", line 225, in main
deps = CFG.main(**kwds)
^^^^^^^^^^^^^^^^
File "C:\Users\xxxxxxx\AppData\Local\Temp\pip-install-zqq3q3ot\pygame_1748e02cad70437b8b99abf25c9b1b20\buildconfig\config_win.py", line 511, in main
return setup_prebuilt_sdl2(prebuilt_dir)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\xxxxxxx\AppData\Local\Temp\pip-install-zqq3q3ot\pygame_1748e02cad70437b8b99abf25c9b1b20\buildconfig\config_win.py", line 471, in setup_prebuilt_sdl2
DEPS.configure()
File "C:\Users\xxxxxxx\AppData\Local\Temp\pip-install-zqq3q3ot\pygame_1748e02cad70437b8b99abf25c9b1b20\buildconfig\config_win.py", line 336, in configure
from . import vstools
File "C:\Users\xxxxxxx\AppData\Local\Temp\pip-install-zqq3q3ot\pygame_1748e02cad70437b8b99abf25c9b1b20\buildconfig\vstools.py", line 11, in <module>
compiler.initialize()
File "C:\Python311\Lib\site-packages\setuptools\_distutils\msvc9compiler.py", line 403, in initialize
vc_env = query_vcvarsall(VERSION, plat_spec)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python311\Lib\site-packages\setuptools\_distutils\msvc9compiler.py", line 281, in query_vcvarsall
raise DistutilsPlatformError("Unable to find vcvarsall.bat")
distutils.errors.DistutilsPlatformError: Unable to find vcvarsall.bat
Making dir :prebuilt_downloads:
Downloading... https://www.libsdl.org/release/SDL2-devel-2.0.18-VC.zip ed561079ec622b0bab5a9e02976f5d540b0622da
Unzipping :prebuilt_downloads\SDL2-devel-2.0.18-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://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-devel-2.0.15-VC.zip 1436df41ebc47ac36e02ec9bda5699e80ff9bd27
Unzipping :prebuilt_downloads\SDL2_ttf-devel-2.0.15-VC.zip:
Downloading... https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-devel-2.0.4-VC.zip 9097148f4529cf19f805ccd007618dec280f0ecc
Unzipping :prebuilt_downloads\SDL2_mixer-devel-2.0.4-VC.zip:
Downloading... https://www.pygame.org/ftp/jpegsr9d.zip ed10aa2b5a0fcfe74f8a6f7611aeb346b06a1f99
Unzipping :prebuilt_downloads\jpegsr9d.zip:
Downloading... https://pygame.org/ftp/prebuilt-x64-pygame-1.9.2-20150922.zip 3a5af3427b3aa13a0aaf5c4cb08daaed341613ed
Unzipping :prebuilt_downloads\prebuilt-x64-pygame-1.9.2-20150922.zip:
copying into .\prebuilt-x64
Path for SDL: prebuilt-x64\SDL2-2.0.18
...Library directory for SDL: prebuilt-x64/SDL2-2.0.18/lib/x64
...Include directory for SDL: prebuilt-x64/SDL2-2.0.18/include
Path for FONT: prebuilt-x64\SDL2_ttf-2.0.15
...Library directory for FONT: prebuilt-x64/SDL2_ttf-2.0.15/lib/x64
...Include directory for FONT: prebuilt-x64/SDL2_ttf-2.0.15/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.0.4
...Library directory for MIXER: prebuilt-x64/SDL2_mixer-2.0.4/lib/x64
...Include directory for MIXER: prebuilt-x64/SDL2_mixer-2.0.4/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.0.18/lib/x64/SDL2.dll
DLL for SDL2_ttf: prebuilt-x64/SDL2_ttf-2.0.15/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.0.4/lib/x64/SDL2_mixer.dll
DLL for portmidi: prebuilt-x64/lib/portmidi.dll
Path for FREETYPE not found.
...Found include dir but no library dir in prebuilt-x64.
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/SDL2_ttf-2.0.15/lib/x64/libfreetype-6.dll
---
For help with compilation see:
https://www.pygame.org/wiki/CompileWindows
To contribute to pygame development see:
https://www.pygame.org/contribute.html
---
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
WARNING: There was an error checking the latest version of pip.

解决方案:whl安装

  1. 下载pygame安装包

下载地址:

https://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame

我安装的python版本3.11.1,win系统64位。

选择对应版本:pygame‑2.1.2‑cp311‑cp311‑win_amd64.whl

  1. 将安装包放到指定路径后进行安装

C:\Users\xxxxxxx>Python -m pip install --user pygame-2.1.2-cp311-cp311-win_amd64.whl

问题原因和解决思路参考:
https://q.cnblogs.com/q/142229/
dll缺失是关键问题:
这类情况直接whl安装,需要根据python版本选择whl,比如:python3.11,选文件名包含cp311。

二进制安装方式参考:
http://c.biancheng.net/pygame/installer.html

安装前置事项,重装python(这步并非解决问题的关键,只是将前述操作做记录)

  1. 控制面板内与python相关程序都卸载——刚开始只卸载了python程序,后来发现还有一个python launcher的程序未卸载。

  1. 选自定义安装方式,安装路径:C:\Python311,将python放C盘根目录。(多数软件使用问题的通用解决思路)

自定义安装,参考: https://opentechschool.github.io/python-beginners/en/getting_started.html#what-is-python-exactly
Note
On Windows, you’ll want to add Python to your PATH, so it can be found by other programs. With Python 3.5 or later, there should be and option to do this in the installer. Otherwise, you can navigate to your installation directory (C:\Python34\), open the Tools, then Scripts folder, and run the win_add2path.py file by double clicking on it.

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2023年3月7日 下午11:06
下一篇 2023年3月7日 下午11:07

相关推荐