2015-11-13 1 views
1

У меня есть 32-разрядный Python2.7 уже установлен в Windows 7 (64-разрядная операционная система), и я могу использовать его без каких-либо ошибок. Кроме того, я попытался установить 64-битную Python3.4 и PyQt5 в том же управлением Windows 7.Почему импорт PyQt5 не удался в Python3.4 с `ImportError: ошибка загрузки DLL` в Windows 7?

Я последовал шаги, описанные в этой ссылке: Verify PyQt5 Packages Installed. Я установил 64-разрядные версии версий Python3.4 и PyQt5. Как уже упоминалось в данной ссылке, чтобы проверить установку, когда я напечатал: from PyQt5 import QtCore, QtGui, QtWidgets я получил эту ошибку:

ImportError: DLL load failed: %1 is not a valid Win32 application.

Возможно ли, что 32-разрядные python2.7 вызывает это сообщение об ошибке?

Как исправить эту проблему?

Заранее благодарен!

+1

Вы импортируете эти модули из интерпретатора Python 2? Поскольку у меня такая же установка для Python 3, PyQt5 (как 64-разрядная), так и 64-разрядный интерпретатор Python 3 не вызывает никаких ошибок. –

+0

На самом деле это правда! Я импортировал эти модули из интерпретатора Python2.7. Спасибо за ответ! – selimcan

ответ

2

Слишком сложная ситуация. У вас есть 64-битная Windows, которая может устанавливать 64-разрядное и 32-разрядное программное обеспечение. Таким образом, вы можете установить оба варианта 2.x и 3.x в обоих вариантах. Для каждой установки Python может быть доступно 4 типа PyQt, 4 & 5, как в 32, так и в 64-разрядной версии. Таким образом, вероятность ошибки 2 * 4 * 4 * 2 = 64 раза сложнее. Шутки обособленно.

Давайте посмотрим на ошибки:

ImportError: DLL load failed: %1 is not a valid Win32 application. 

Давайте разбить его:

  • ImportError: Характер ошибки мы Геттингом импорта связаны. Python не может загрузить указанный модуль (модули). Давайте двигаться вперед.
  • DLL load failed: Это сообщение более или менее говорит о том, что модуль был в форме файла .dll.
  • %1 is not a valid Win32 application. Эта ошибка имеет большую часть информации. %1, что больше похоже на аргумент, представляющий PyQt5, не является допустимым приложением Win32.

Просмотрев эту ошибку, можно увидеть, что интерпретатор ищет приложение Win32, которое просто означает 32-битное приложение. Но зачем интерпретатору нужен 32-битный модуль? Угадай? Потому что сам интерпретатор 32-битный!

Нельзя сказать, что это интерпретатор Python3 или Python2, потому что ошибка указывает только 32 или 64-разрядную информацию. Но в вашем случае это ваш интерпретатор Python 2, потому что это всего лишь 32-разрядный интерпретатор в вашей системе.

Смежные вопросы