pySide: указанный модуль ExtensionLoader_Pyside_QtGUI.py не найден

Я использую CXFreeze с PySide (QT). Я получаю сообщение об ошибке: cx_Freeze: ошибка Python в основном скрипте. myscript.py, строка 33, в файле ExtensionLoader_Pyside_QtGUI.py, строка 11, в Ошибка импорта: ошибка загрузки DLL: указанный модуль не найден

При запуске новой установки Windows Server 2008. Я запускаю замороженный пакет EXE (с папкой). Кажется, это работает на моей собственной системе и других системах. В чем может быть проблема?

После прочтения в Интернете я попытался заменить файл Qt4Gui, но это не решило проблему.

Версия Python 2.7.


person SilentSteel    schedule 02.08.2013    source источник


Ответы (3)


Судя по вашему Import Error: DLL load failed, это, скорее всего, проблема установки, вызывающая отсутствие DLL. Чтобы выяснить, какой именно DLL вам не хватает, используйте http://www.dependencywalker.com/. Запустите файл . exe и откройте файл .pyd для File ExtensionLoader_Pyside_QtGUI.py, и он точно покажет вам, какие DLL отсутствуют, и, что более важно, где они должны быть. Затем вы, вероятно, сможете отследить отсутствующую DLL в Интернете.

person TheoretiCAL    schedule 02.08.2013
comment
Спасибо, хотя, возможно, это не лучший ответ № 1, это отличный инструмент, о котором нужно знать! - person SilentSteel; 05.08.2013

известны проблемы с pyside 1.2.0 и cxFreeze. Все должно быть исправлено в разрабатываемой версии (доступно в репозитории git). Пожалуйста, соберите PySide из последних исходников самостоятельно или дождитесь PySide версии 1.2.1. Инструкции по сборке находятся здесь [1].

[1] https://github.com/PySide/pyside-setup#building-pyside-on-a-windows-system

person rlacko    schedule 03.08.2013
comment
Это использовалось PySide 1.1.2. Это хороший намек, но он не применим. - person SilentSteel; 11.08.2013

Я использовал Py2exe вместо CXFreeze, и он отлично работал.

Кроме того, очевидно, что для Python требуются файлы зависимостей MS Visual C++: http://www.microsoft.com/en-us/download/details.aspx?id=29 Таким образом, любой пакет также нуждается в этом, если это новая установка. (Хотя я думаю, что теперь они идут в комплекте с более новыми версиями Windows.)

Другие примечания. По моему опыту, иногда вам следует быстро попробовать CXFreeze, Py2EXE и PyInstaller и посмотреть, какой из них работает лучше всего. Какой бы идеальной ни была кроссплатформенность CXFreeze, она просто не может быть идеальной.

Кроме того, хотя я не знаю, было ли это причиной, я настроил виртуальную машину Windows 2000 Pro и запустил на ней Py2exe. Это было сделано для обеспечения совместимости со всеми старыми версиями Windows и, похоже, работало хорошо. (ПРИМЕЧАНИЕ: многие вещи больше не будут работать на Win2000, поэтому будьте осторожны, чтобы другие ваши инструменты и библиотеки не работали на ней.)

Наконец, будьте особенно внимательны, чтобы соответствовать разрядности (32 против 64) всех ваших библиотек и самой установки Python. Если у вас 32-битный Python, убедитесь, что ваши PySide, CXFreeze и любые другие библиотеки, которые вы используете, являются 32-битными. (Или 64-битный, если вы используете 64-битный Python.)

person SilentSteel    schedule 11.08.2013