LINUX.ORG.RU

Как заставить cxfreeze генерировать exe в ubuntu?

 , ,


0

3

Нужно «собрать» скрипт на питоне для дальнейшего запуска в оффтопике (без pm ставить питон и библиотеки к нему - удовольствие ниже среднего).

Для этого выбрал cxfreeze, ибо работает в ubuntu. Но при запуске в ubuntu он генерирует elf файл и so библиотеки. Ключа «для винды», на первый взгляд, нет.

Можно ли им сделать exe файл прямо из ubuntu, не устанавливая альтернативные ОС?

Скрипт на питоне №3, использует pyside.

★★

Can I use PyInstaller as a cross-compiler?

Can I package Windows binaries while running under Linux?

No, this is not supported. Please use ​Wine for this, PyInstaller runs fine in Wine. You may also want to have a look at ​this thread in the mailinglist. In version 1.4 we had build in some support for this, but it showed to work only half. It would require some Windows system on another partition and would only work for pure Python programs. As soon as you want a decent GUI (gtk, qt, wx), you would need to install Windows libraries anyhow. So it's much easier to just use Wine.

Я думаю, для cxfreeze подход подобен.

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

Вообще, судя по документации, за тип бинарника отвечает параметр base:

http://www.blog.pythonlibrary.org/2010/08/12/a-cx_freeze-tutorial-build-a-bin...

First off, we separated the Executable class from the setup class and assigned the Executable class to a variable. We also added a second parameter to the Executable class that is key. That parameter is called “base”. By setting base=”Win32GUI”, we are able to suppress the console window.

strangeman ★★★★
()

Есть ещё такой вариант: положить свою программу на питоне и используемые модули в архив myProgram.zip и запускать как python.exe myProgram.zip из bat скрипта. Тут только желателен портабельный питон, наверняка есть такие сборки.

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

Да просто прикладывается питон.ехе и библиотоеки + батничек для запуска. Питон под виндой на самом деле не требует установки.

AIv ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Под линукс я не пробовал. ИМНО можно настроить.

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

Please use ​Wine for this, PyInstaller runs fine in Wine.

Я думаю, для cxfreeze подход подобен.

Логично, в общем.

Но pyside в вайн установить не получилось.

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

Вообще, судя по документации, за тип бинарника отвечает параметр base:

By setting base=”Win32GUI”, we are able to suppress the console window.

Это про консольное окно, выскакивающее при запуске «скомпилированного» скрипта под виндой. Этим параметром его отключают.

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

Есть ещё такой вариант: положить свою программу на питоне и используемые модули в архив myProgram.zip и запускать как python.exe myProgram.zip из bat скрипта. Тут только желателен портабельный питон, наверняка есть такие сборки.

Хороший вариант, но для меня только всё усложняет. Раскладывать модули по архивам всё равно придётся в альтернативной ОС, а там и cxfreeze работает, который делает то же самое самостоятельно.

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

Раскладывать модули по архивам всё равно придётся в альтернативной ОС

Почему? По-моему, ничто не мешает это делать под Линуксом.

firestarter ★★★☆
()

setup.py

from cx_Freeze import setup, Executable

exe = Executable(
    script="script.py",
	initScript = None,
    base="Win32GUI",
	copyDependentFiles = True,
	appendScriptToExe = False,
	appendScriptToLibrary = False,
	icon = "someicon.ico"
    )
 
setup(
    name = "Name",
    version = "0.1",
    description = "Description",
    executables = [exe]
    )

crunchy_crow
()

Всё-таки получилось «собрать» под вайном.

Теперь работает как надо, без лишних ОС.

Всем спасибо.

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

Почему? По-моему, ничто не мешает это делать под Линуксом.

PySide, например, в вайн не устанавливался. Когда установил, заработал и cxfreeze. Он сам библиотеки по папкам раскладывает, нет нужды делать это вручную.

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