การแก้ปัญหา“ การโหลด DLL ล้มเหลว:% 1 ไม่ใช่แอปพลิเคชัน Win32 ที่ถูกต้อง” สำหรับ Pygame


93

ฉันเพิ่งติดตั้ง Python 3.1 และโมดูล Pygame สำหรับ Python 3.1 เมื่อฉันพิมพ์ import python ในคอนโซลฉันได้รับข้อผิดพลาดต่อไปนี้:

Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    import pygame
  File "C:\Python31\lib\site-packages\pygame\__init__.py", line 95, in <module>
    from pygame.base import *
ImportError: DLL load failed: %1 is not a valid Win32 application.

กรุณาช่วย!

คำตอบ:


149

อาจเป็นเพราะสถาปัตยกรรมของระบบปฏิบัติการของคุณ OS 64 บิตของคุณหรือไม่และคุณได้ติดตั้ง Python เวอร์ชัน 64 บิตแล้วหรือยัง อาจช่วยในการติดตั้งทั้งPython 3.1และPygameเวอร์ชัน 32 บิตซึ่งพร้อมใช้งานอย่างเป็นทางการใน 32 บิตเท่านั้นและคุณจะไม่ประสบปัญหานี้

ฉันเห็นว่ามีการดูแล pygame 64 บิตที่นี่คุณอาจต้องการลองถอนการติดตั้ง Pygame เท่านั้นและติดตั้งเวอร์ชัน 64 บิตบน python3.1 ที่มีอยู่ของคุณหากไม่เลือกไปสำหรับเวอร์ชัน 32 บิต


4
สิ่งนี้กระทบเล็บบนหัวสำหรับ wxpython ด้วย :)
Matt Lyons

ยังใช้งานได้เพื่อให้โมดูล PIL ทำงานใน GAE dev_appserver บน Windows 7
HorseloverFat

ฉันได้รับข้อผิดพลาดที่คล้ายกันเมื่อติดตั้ง pygame สำหรับ Python 3.2 บนระบบที่ติดตั้ง Python 3.4 (ทั้ง 32 บิต) เว็บไซต์ pygame ไม่ได้ให้บริการเวอร์ชันที่ใหม่กว่า แต่มีให้ที่นี่ !
andreasdr

@SenthilKumaran ถ้าฉันมี Windows 64 บิตและติดตั้ง 32-python และ 32-libs ฉันมีปัญหานี้หรือไม่? ฉันไม่สามารถติดตั้งnumpy+mklเพื่อใช้งานได้sklearn

ผู้ยิ่งใหญ่ฉันพบสิ่งนี้เมื่อฉันตัดสินใจอย่างโง่ ๆ ว่าการใช้ pycharm จะเป็นความคิดที่ดีทุกอย่างสมบูรณ์แบบก่อนที่จะติดตั้งหลังจากติดตั้งเซิร์ฟเวอร์ django ของฉันจะไม่ทำ ขอบคุณมันทำงานอีกครั้ง
allsyed

9

ดูเหมือนว่าคำถามจะได้รับคำตอบนานแล้ว แต่วิธีแก้ปัญหาไม่ได้ผลสำหรับฉัน เมื่อฉันได้รับข้อผิดพลาดนั้นฉันสามารถแก้ไขปัญหาได้โดยดาวน์โหลดPyWin32


3

ฉันได้ติดตั้ง Python เวอร์ชัน 32 บิตและเวอร์ชัน psycopg2 64 บิตเพื่อรับปัญหานี้ ฉันติดตั้ง Psycopg2 เวอร์ชัน 32 บิตแล้วมันก็ใช้งานได้


2

มีปัญหานี้ใน Python 2.7.9 แก้ไขได้โดยอัปเดตเป็น Python 2.7.10 (ยังไม่ได้เผยแพร่เมื่อมีการถามและตอบคำถามนี้)


1

สาเหตุที่เป็นไปได้อีกประการหนึ่งของปัญหาที่คล้ายกันอาจผิดพลาดprocessorArchitectureในรายการ cx_freeze พยายามโหลด x86 การควบคุมทั่วไป dll ในกระบวนการ x64 - ควรได้รับการแก้ไขโดยโปรแกรมแก้ไขนี้:

https://bitbucket.org/anthony_tuininga/cx_freeze/pull-request/71/changed-x86-in-windows-manifest-to/diff

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.