为什么在 pycharm 中安装 pygame 时出现此错误

时间:2021-01-23 12:06:11

标签: python python-3.x pip pygame pycharm

Command "python setup.py egg_info" failed with error code 1 in C:\Users\Eli Heist\AppData\Local\Temp\pip-install-fjf50xi9\pygame\

这是完整的过程

(venv) C:\Users\Eli Heist\PycharmProjects\Space Invaders Ultimate>pip install pygame
Collecting pygame
  Downloading https://files.pythonhosted.org/packages/c7/b8/06e02c7cca7aec915839927a9aa19f749ac17a3d2bb2610b945d2de0aa96/pygame-2.0.1.tar.gz (5.5MB)

    100% |████████████████████████████████| 5.5MB 996kB/s
    Complete output from command python setup.py egg_info:


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

    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\Eli Heist\AppData\Local\Temp\pip-install-fjf50xi9\pygame\setup.py", line 318, in <module>
        buildconfig.config.main(AUTO_CONFIG)
      File "C:\Users\Eli Heist\AppData\Local\Temp\pip-install-fjf50xi9\pygame\buildconfig\config.py", line 221, in main
        deps = CFG.main(**kwds)
      File "C:\Users\Eli Heist\AppData\Local\Temp\pip-install-fjf50xi9\pygame\buildconfig\config_win.py", line 574, in main
        return setup_prebuilt_sdl2(prebuilt_dir)
      File "C:\Users\Eli Heist\AppData\Local\Temp\pip-install-fjf50xi9\pygame\buildconfig\config_win.py", line 499, in setup_prebuilt_sdl2
        DEPS.configure()
      File "C:\Users\Eli Heist\AppData\Local\Temp\pip-install-fjf50xi9\pygame\buildconfig\config_win.py", line 336, in configure
        from . import vstools
      File "C:\Users\Eli Heist\AppData\Local\Temp\pip-install-fjf50xi9\pygame\buildconfig\vstools.py", line 11, in <module>
        compiler.initialize()
      File "C:\Users\Eli Heist\AppData\Local\Programs\Python\Python38\lib\distutils\msvc9compiler.py", line 372, in initialize
        vc_env = query_vcvarsall(VERSION, plat_spec)
      File "C:\Users\Eli Heist\PycharmProjects\Space Invaders Ultimate\venv\lib\site-packages\setuptools-40.8.0-py3.8.egg\setuptools\msvc.py", line
147, in msvc9_query_vcvarsall
      File "C:\Users\Eli Heist\PycharmProjects\Space Invaders Ultimate\venv\lib\site-packages\setuptools-40.8.0-py3.8.egg\setuptools\msvc.py", line
1227, in return_env
      File "C:\Users\Eli Heist\PycharmProjects\Space Invaders Ultimate\venv\lib\site-packages\setuptools-40.8.0-py3.8.egg\setuptools\msvc.py", line
876, in VCIncludes
      File "C:\Users\Eli Heist\PycharmProjects\Space Invaders Ultimate\venv\lib\site-packages\setuptools-40.8.0-py3.8.egg\setuptools\msvc.py", line
555, in VCInstallDir
    distutils.errors.DistutilsPlatformError: Microsoft Visual C++ 14.2 is required. Get it with "Microsoft Visual C++ Build Tools": https://visualst
udio.microsoft.com/downloads/
    Making dir :prebuilt_downloads:
    Downloading... https://www.libsdl.org/release/SDL2-devel-2.0.14-VC.zip 48d5dcd4a445410301f5575219cffb6de654edb8
    Unzipping :prebuilt_downloads\SDL2-devel-2.0.14-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.ijg.org/files/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.14
    ...Library directory for SDL: prebuilt-x64/SDL2-2.0.14/lib/x64
    ...Include directory for SDL: prebuilt-x64/SDL2-2.0.14/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.14/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
    ---


    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in C:\Users\Eli Heist\AppData\Local\Temp\pip-install-fjf50xi9\pygame\

2 个答案:

答案 0 :(得分:1)

您看到此错误是因为 pip 正在尝试为 pygame 编译完整的 SDL library,而您的机器缺少这样做的构建要求。这是在您的错误消息中:

Microsoft Visual C++ 14.2 is required

幸运的是,pygame 为大多数操作系统提供了预编译的二进制文件,因此您不必自己编译。它们以 Python wheels 的形式分发。要访问预编译版本,您只需安装 wheel:

C:\>pip install wheel
C:\>pip install pygame

答案 1 :(得分:0)

我不确定如何解决这个问题,但我会尽力提供帮助。

尝试以下操作:

  1. 不要为该特定项目安装它。尝试仅转到 cmd 并为您的整个 python 环境安装它。
  2. 确保在 PATH 变量中正确安装了 python。
  3. 尝试改用 py -m pip install -U pygame --user。如果这不起作用,请尝试 python3 -m pip install -U pygame --user

如果您使用的是 python 3.8 和/或上述方法均无效,您有两个选择:恢复到 python 3.7 或等待 pygame 更新。众所周知,Pygame 在 python 3.8 中无法正常运行。我遇到了同样的问题,我通过将 pygame 项目切换到 python 3.7 和其他 python 项目的最新版本来解决它。