Найти - Пользователи
Полная версия: кросс компиляция... питон скрипта?!
Начало » Python для новичков » кросс компиляция... питон скрипта?!
1 2 3
falsekeel
Доброго времени суток форумчане!

Есть простейший скрипт на питоне, написаный с пименением библиотек numpy, scipy, matplotlib.
Необходимо получить из него исполняемый *.exe файл для винды. вроде бы простая задача, да? но в распоряжении машина только под линуксом!
как подступиться к этой задаче ума не приложу, поэтому буду благодарен за любую помощь!
doza_and
falsekeel
как подступиться к этой задаче ума не приложу
Сотню раз уже обсуждалось. Делаете из своего скрипта whl и заливаете на pipi.
Если на винде нет питона ставите.

А про изготовление exe бодренько забываете.
DamMercul
py2exe тебе в помощь, падаван… На самом деле скомпилировать скрипт питона в exe полноценно ты не сможешь. Напоминаю: python - интерпретируемый язык. То есть он исполняется по строчно, а не как в компилируемых(все сразу)(могу объяснить неверно, точное определение интерпретации). Py2exe всего лишь копирует в папку сам питон(его так называемое “ядро”), модули, которые ты импортируешь и саму exe'шку, которая все те файлы юзает.
falsekeel
Т.е. всё так просто? типа байткод одинаковый для линукса и винды? а то что matplotlib использует встроенный latex тоже не помешает использованию “колес”?
doza_and
falsekeel
типа байткод одинаковый для линукса и винды?
Вы что с шарпа что-ли пришли? В питоне распространяется исходный код. Переносимость как и в любом языке ваша забота. Если на целевой системе нет монитора, то вывод на него очевидно будет не очень функционален.

В частности с matplotlib проблем с интерпретацией латеха нет. Проблемы могут быть ну например если пользователь винды назван по русски, старт процесса под виндой на полтора порядка дольше, фонты не совпадают и проч и проч. Компиляция в exe кстати от этих проблем совершенно не спасает. Т.е. без винды вы все равно не поймете как оно под виндой работает.
PEHDOM
falsekeel
Т.е. всё так просто? типа байткод одинаковый для линукса и винды?
Не все конечно, бывает что собраное py2exe или pyInstaller-ом не хочет работать ругаясь на отсутсвие какойто либы или модуля, хотя из пайтона все запускаеться. К примеру был случай что собраное падало жалуясь что нету модуля encodings, и только добавив в скрипт “import encodings” оно собралось и запустилось нормально.
Бывает что оно некоректно собирается если используються определенные модули, тогда нужны “танцы с бубном”, иногда решение проблемы описано прямо на сайте py2exe/pyInstaller по типу если вы используете модуль ххххх, то добавте в конфиг…. скопируйте файл….. и тд…
Так что венда вам всеравно понадобится хотябы на виртуалке, чтобы иметь представление чего ему не хватает в случае чего. Хотя собирать можо и под линуксом.
dbalor
Здравствуйте,

Вопросик в эту тему.
Скомпилировал прогу под убунту, затем под виндой, все пашет, теперь прога работет под виндой и под линухой.
Но когда прогу под линуху запускаю под debian выдает ошибку:

1481 Error loading Python lib ‘/tmp/_MEImVYUnX/libpython3.6m.so.1.0’: dlopen: /lib/x86_64-linux-gnu/libc.so.6: version
GLIBC_2.25' not found (required by /tmp/_MEImVYUnX/libpython3.6m.so.1.0)

Подскажите в чем проблема? Ведь ubuntu и debian одно семейство линуксов.
doza_and
dbalor
Подскажите в чем проблема?
Проблема в том уважаемый, что вы неправильно делаете лишнюю и никому не нужную работу - компилируете скрипт.
PEHDOM
dbalor
Но когда прогу под линуху запускаю под debian выдает ошибку:
ну линух он такой, одна либа требует другую, та третью, а та четвертую.. походу для libpython3.6m.so.1.0 нужна /lib/x86_64-linux-gnu/libc.so.6 версии GLIBC_2.25. проверте есть ли она на вашем дебиане, и если есть то лежит ли она по пути /lib/x86_64-linux-gnu/
dbalor
Проблема в том уважаемый, что вы неправильно делаете лишнюю и никому не нужную работу - компилируете скрипт.
А конкретней, ваши предложения.
Я собираю вроде бы весь проект


ну линух он такой, одна либа требует другую, та третью, а та четвертую.. походу для libpython3.6m.so.1.0 нужна /lib/x86_64-linux-gnu/libc.so.6 версии GLIBC_2.25. проверте есть ли она на вашем дебиане, и если есть то лежит ли она по пути /lib/x86_64-linux-gnu/

Он ведь добавляется в папку приложения при компиляции.
Как добавить его в свой проект?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB