LINUX.ORG.RU

почему cxfreeze не видит pyqt4?


0

1

написал приложение с gui на python3.1 + pyqt4
пытаюсь собрать в исполняемый файл с помощью cxfreeze:

[code]cxfreeze start.pyw --target-dir Release --include-modules PyQt4[/code]

но получаю:
[code] File «/usr/bin/cxfreeze», line 5, in <module>
main()
File «/usr/lib/python3.1/site-packages/cx_Freeze/main.py», line 188, in main
freezer.Freeze()
File «/usr/lib/python3.1/site-packages/cx_Freeze/freezer.py», line 470, in Freeze
self._FreezeExecutable(executable)
File «/usr/lib/python3.1/site-packages/cx_Freeze/freezer.py», line 140, in _FreezeExecutable
finder = self._GetModuleFinder(exe)
File «/usr/lib/python3.1/site-packages/cx_Freeze/freezer.py», line 295, in _GetModuleFinder
finder.IncludeModule(name)
File «/usr/lib/python3.1/site-packages/cx_Freeze/finder.py», line 503, in IncludeModule
namespace = namespace)
File «/usr/lib/python3.1/site-packages/cx_Freeze/finder.py», line 258, in _ImportModule
raise ImportError(«No module named %r» % name)
ImportError: No module named 'PyQt4'
[/code]

при этом, если запустить в консоли и питон 2.7, и питон 3 - оба они видят PyQt4 - «import PyQt4» работает, скрипт запускается нормально
почему cxfreeze не видит pyqt4?

Ответ на: комментарий от zJes

у меня нет setup.py
я скачал rpm, в системе появилась команда cxfreeze, с помощью неё попытался скомпилировать start.pyw, который рисует окно с pyqt4

вот start.pyw:

import sys

from PyQt4 import QtCore, QtGui
from engine.main import mainWindow

app = QtGui.QApplication(sys.argv)

mw = mainWindow(app)
mw.show()

sys.exit(app.exec_())

sergey-novikov ★★★
() автор топика
Ответ на: комментарий от zJes

с компиляцией через скрипт тоже проблемы

в системе стоят python 2.7 и 3.1

компилирую так:
/usr/bin/python3 setup.py build

файл setup.py:
from cx_Freeze import setup, Executable

setup(
name = «hello»,
version = «0.1»,
description = «the typical 'Hello, world!' script»,
options = {«build_exe»: {«includes»: ['PyQt4']}}, # пробовал инклудить и «PyQt4._qt»
executables = [Executable(«start.pyw»)]
)

при запуске выдает:

Missing modules:
? PyQt4.QtCore imported from start__main__
? Queue imported from concurrent.futures.process
? _md5 imported from hashlib

Библиотеки PyQt4 пришлось копировать из /usr/local/lib/python3.2, которого у меня вообще нет, но причем весь софт, запускаемый на 3.1 почему-то находил эти библиотеки и использовал

в итоге, запускаю

./build/exe.linux-i686-3.1/start

Traceback (most recent call last):
File «/usr/lib/python3.1/site-packages/cx_Freeze/initscripts/Console3.py», line 27, in <module>
exec(code, m.__dict__)
File «start.pyw», line 3, in <module>
from PyQt4 import QtCore, QtGui
File «ExtensionLoader_PyQt4_QtCore.py», line 12, in <module>
ImportError: No module named _qt
[deex@localhost tmp]$

sergey-novikov ★★★
() автор топика
Ответ на: комментарий от sergey-novikov

ошибочка
после добавления PyQt4._qt ошибка следующая:
(она же была и при компиляции командой cxfreeze)

./build/exe.linux-i686-3.1/start
Traceback (most recent call last):
File «/usr/lib/python3.1/site-packages/cx_Freeze/initscripts/Console3.py», line 27, in <module>
exec(code, m.__dict__)
File «start.pyw», line 3, in <module>
from PyQt4 import QtCore, QtGui
File «ExtensionLoader_PyQt4_QtCore.py», line 12, in <module>
File «ExtensionLoader_PyQt4__qt.py», line 12, in <module>
ImportError: /home/tmp/build/exe.linux-i686-3.1/PyQt4._qt.so: undefined symbol: PyUnicodeUCS2_FromString

sergey-novikov ★★★
() автор топика
Ответ на: комментарий от sergey-novikov

я бы попробовал пересобрат pyqt4, явно он у вас дефектный

loki_ ★★
()
Ответ на: комментарий от sergey-novikov

> Библиотеки PyQt4 пришлось копировать из /usr/local/lib/python3.2

Ничего не понял, у тебя вообще какой питон стоит то?

zJes ★★
()
Ответ на: комментарий от zJes

да, вышла путаница, питон у меня 3.2
а cxfreeze есть только для питон 3.1

придется ждать
или есть ещё варианты как собрать бинарник из питона 3.2 + pyqt для 3.2?

sergey-novikov ★★★
() автор топика
Ответ на: комментарий от sergey-novikov

Да вот что-то не знаю, попробуй просто все начисто поставить, без копирований итд. У нас на вин билд машине все собирается без проблем. (Вернее одна есть, пришлось фрииз руками править).

zJes ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.