LINUX.ORG.RU

Кроссплатформенный скрипт запуска

 ,


0

3

Нужно запускать некий набор кроссплатформенных программ, но логика запуска довольно сложна и сильно варьируется в зависимости от типа программ на машине пользователя. Такое на баше тем более батьке не напишешь.

Поэтому я бы взял Python для этой задачи, версии 2.7.x. На Linux проблем нет - взлетит на любом дистре. А как быть с оффтопиком?

Подскажите какой-нибудь минималистичный рантайм или как его сформировать без особых страданий (но лучше готовый), чтобы на оффтопике был небольшой exe не более пары мегабайт. Чтобы пользователь кликнул батю (run.bat) и у него пошел такой же процесс как и на Linux по поиску ПО нужных поддерживаемых версий.

(нужна удобная запускалка тестового окружения, и для этого нужен поиск симуляторов типа Aldec или Modelsim, а также еще некоего софта в зависимости от типа найденного подходящего симулятора - такое только сложный скрипт на Python решит, а на оффтопе его надо чем-то еще запустить)

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

Тестовое окружение требует наличия не только одного из симуляторов (совершенно разных, от Aldec до линейки Mentor Graphics), но и пакета Python с кучей библиотек. Для этого подходит Anaconda Python, допустим ветки 3.x.

Вот думаю, может bat файл сможет подцепить этот установленный Python 3 (который все равно требуется). Если Anaconda прописывает себя в виндовом глобальном path, но тогда проблемы вообще нет.

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

Последний коммит там два года назад «[r765] Final version 0.9.2.2.» был, правда.

В конце концов ничего не мешает попробовать.

Еще вот такая штука есть http://cx-freeze.sourceforge.net/

Radjah ★★★★★
()
Последнее исправление: Radjah (всего исправлений: 1)
Ответ на: комментарий от Radjah

Еще вот такая штука есть

Это вроде живое, шевелится.

I-Love-Microsoft ★★★★★
() автор топика

самый адекватный из тех, что использовал за последнее время - PyInstaller. Умеет в один exe все собирать. Есть ещё Nutika, но не пробовал. Можно таскать с собой portable python. Однако стоит понимать, что все это костыли и хаки, которые рядом со скриптом пихают урезанный интерпретатор.

Соответственно если не хватает чего-либо, что требует питон от ОСи - то ничерта не заработает. Да, есть такие штуки для оффтопика. Даже какое-то обновление винды или что-то с ними связное (сейчас не вспомню) При этом официальный питоний установщик, конечно, все умеет ставить сам.

Можно попробовать выбрать какой-нибудь GOlang. Он из коробки умеет все в один бинарник собирать. Но вот как для скриптования подходит - я не в курсе (да и вообще про GO не особо)

Dred ★★★★★
()
Последнее исправление: Dred (всего исправлений: 1)

кстати, технически, можно ещё cython в exe собирать. Однако это уже другая головная боль

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

Нужно геморрой-free решение. czFreeze подойдет, а вот если Anaconda после установки себя регает в системе и так - то я наверное и зря тему создал, просто батник будет запускать скрипт и всё.

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

Anaconda

если анаконда уже установлена, то да, смысла во всем этом не много. Да и скорее всего есть костыль позволяющий достать путь куда установлен системый питон (если не прописался в PATH). Что-то вроде реестра.

czFreeze подойдет

пользовался им года 3 назад. Не понравилась возня с подключаемыми библиотеками и тд. Что-то еще в нем оттолкнуло, но не вспомню что.

Dred ★★★★★
()
Последнее исправление: Dred (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

Го — не скриптовый ЯП. Компилить придется, но компиляция там вроде быстрая. Просто питон на винде — вообще тема не ахти, тебе экзешник под оффтоп тоже придется отдельно собирать.

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

Код на го собирается в один бинарник, а для каждой ОС собирается просто кросскомпиляцией. То бишь количество гемороя сведено к минимуму.

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

Один exe и все, кроссплатформенно

Не неси чепуху. Под каждую платформу придется отдельно компилять. Уже проще cpp/qt взять.

Siado ★★★★★
()

tcl/tk обычно используют

zudwa
()
Ответ на: комментарий от Siado

Lazarus намного проще, все в одном

Для простых утилит самое то

ism ★★★
()

Нужен кроссплатформенный скрипт.

Под Linux запустится как есть, под оффтопиком - пускалка нужна будет ввиде bat + минималистичного питонячьего рантайма.

Благодарю всех за советы и ответы. Теперь нужно время попробовать предложенные решения.

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

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

I-Love-Microsoft ★★★★★
() автор топика

Есть вот такая штука, которая с помощью docker'a автоматизирует сборку статических бинарников для Linux, Windows, и OS X.

Сам под Windows я не пробовал, потому что у меня нигде его нет.

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