Уведомления

Группа в Telegram: присоединиться

#1 Июль 13, 2018 10:58:22

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 813
Репутация: +  152  -
Профиль   Отправить e-mail  

кросс компиляция... питон скрипта?!

dbalor
А конкретней, ваши предложения.
конкретно, не компилировать, пайтон интерпретируемый ЯП, ставте пайтон и запускайте ваш py файл.
“компиляция”, ИМХО это только на крайний случай, когда, например, по каким то причинам, нет возможности, установить пайтон и\или нужный модуль.
dbalor
Он ведь добавляется в папку приложения при компиляции.
Добавляеться что? libc.so есть во всех линуксах, это одна из важных библиотек.

В линукс исполняемые файлы можно условно разделить на две группы – те, которые содержат в себе весь код, необходимые для работы, и те, которым необходимы разделяемые библиотеки. Первые называют статически собранными бинарными файлами, вторые называют динамически собранными исполняемыми файлами.
Тоесть для для libpython3.6m.so.1.0 нужен libc.so.6, libc.so.6 является библиотекой Си, которая обеспечивает системные вызовы и основные функции, такие как open, malloc, printf и т. д. Библиотека используется для всех динамически скомпонованых программ. поэтому ПуИнсталлер, ее не включает в пакет, она по идее должна быть во всех линуксах. В бубунте начиная с версии 11.04 ее переместили в рамках Multiarch. Multiarch позволяет вам устанавливать пакеты, предназначенные для различных архитектур на одну и ту же машину. соотвевенно либа для х64 лежит в /lib/x86_64-linux-gnu/ а для х86 в /lib/i386-linux-gnu/
Первым делом смотрите на разрядность вашего дебиана, может он у вас 32-х битный, и этой либы для х64 архитектуры там просто нет.
Или в вашем дебиане нету мультиарха и библиотека лежит оп старому пути в /lib/ хз вобщем..

Отредактировано PEHDOM (Июль 13, 2018 10:59:28)

Офлайн

#2 Июль 13, 2018 14:25:21

dbalor
Зарегистрирован: 2018-07-02
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

кросс компиляция... питон скрипта?!

Ну тогда мне наверно нужен динамически собранный исполняемый файл. Как его собрать?
чтобы ему не нужно было куда-нибудь обращаться, а все необходимые библиотеки лежали рядом в папке.

Офлайн

#3 Июль 13, 2018 14:52:16

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 1812
Репутация: +  122  -
Профиль   Отправить e-mail  

кросс компиляция... питон скрипта?!

Тебе просто нужен исполняемый файл который будет загружать Portable Python с твоей программой. И всё.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#4 Июль 13, 2018 15:35:08

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 813
Репутация: +  152  -
Профиль   Отправить e-mail  

кросс компиляция... питон скрипта?!

dbalor
Ну тогда мне наверно нужен динамически собранный исполняемый файл. Как его собрать?
для начала проверь чтобы дебиан не было 32-х битный(шото мне подсказывает что он таки 32-хбитный), собирая под 64-бит, хоть динамически хоть не динамически хрен ты запустиш его под 64 бит.
Обычная практика собирать или только х86 приложение , или два х86 и х64 отдельно.

Офлайн

#5 Июль 14, 2018 00:17:33

dbalor
Зарегистрирован: 2018-07-02
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

кросс компиляция... питон скрипта?!

DEHDOM
Debian 64, все библиотеки на месте.

Тебе просто нужен исполняемый файл который будет загружать Portable Python с твоей программой. И всё.
Не подскажете как это реализовать? Нужно предварительно скачать portable? Или достаточно будет PyInstaller?

Офлайн

#6 Июль 14, 2018 08:24:19

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 3152
Репутация: +  173  -
Профиль   Отправить e-mail  

кросс компиляция... питон скрипта?!

dbalor
Debian 64, все библиотеки на месте.
Если все библиотеки на месте включая питон ….
dbalor
Не подскажете как это реализовать?
Вам уже несколько раз писали:
PEHDOM
запускайте ваш py файл. “компиляция”, ИМХО это только на крайний случай,

НЕ НУЖНА программе на питоне ни компиляция ни кросскомпиляция. Берете свой py файл и его запускаете на всех платформах без всяких изменений. Что тут непонятного то? Если у вас при этом возникают проблемы вы их и описывайте. Если есть зависимости на то есть пакетные менеджеры читайте pip, pip freeze, pip install -r ….










Отредактировано doza_and (Июль 14, 2018 08:27:48)

Офлайн

#7 Июль 14, 2018 18:31:38

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 1812
Репутация: +  122  -
Профиль   Отправить e-mail  

кросс компиляция... питон скрипта?!

> Не подскажете как это реализовать? Нужно предварительно скачать portable? Или достаточно будет PyInstaller?

0) Забываешь про PyInstaller.
1) Если у тебя M$ то качаешь Portable Python (http://portablepython.com/wiki/Download/) иначе используешь установленный в систему.
2) Компилируешь исполняемый файл который будет запускать твою программу про помощи python-а.
И всё.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#8 Июль 15, 2018 23:07:48

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 813
Репутация: +  152  -
Профиль   Отправить e-mail  

кросс компиляция... питон скрипта?!

dbalor
Не подскажете как это реализовать? Нужно предварительно скачать portable?
Я вообще не понимаю в чем пролема, в линуксах нужно еще постараться чтобы найти дистрибутив в котором пайтон не идет из коробки потому как самые популярные DE типа гнома и кед его используют. Единсвенное что там может стоять другая версия чем у вас.
Под вендой или использовать уже готовый портейбл пайтон(ссылку выше давали), или собрать свой с преферансом и стюардесами. Там ничего сложного, устанавливаете пайтон например в C:\python копируете куданить всю папку, удаляете пайтон. Создаете папку MyPortablePython, копируете в нее python.exe запускаете, он вам ругнеться что нет такогото файла, копируете его, запускаете, ну и так пока оно не запуститься. У меня, в свое время, ввыходило минимальный размер мегабайт в 30 при котором оно запускалось и не ругалось ни на что(это практически без модулей кроме совсем уж критических). Заодно лучше поймете как оно все устроено. Потом в самом простоми варианте создаете батник с текстом типа start <путь_к_MyPortablePython>\python.exe <путь_к_py-файлу>\<запустить.py>. .+ еще можете поиграться с перменными окружения типа path и pythonpath. В более сложном пишете в вижуал студио или еще в чемто програмку на Си на три строчки которая делает тоже самое. Тогда оно будет в виде екзешника и красивой иконкой.

Офлайн

#9 Июль 16, 2018 10:59:25

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 1812
Репутация: +  122  -
Профиль   Отправить e-mail  

кросс компиляция... питон скрипта?!

> Тогда оно будет в виде екзешника и красивой иконкой.

Я даже могу исходник такой програмки подогнать, правда он нифига не на си.

 {-# LANGUAGE UnicodeSyntax #-}
{-# OPTIONS_GHC -fno-warn-tabs #-}
 
-- Компилировать с опцией -optl-mwindows
 
import System.Process (spawnProcess)
import System.Environment (getArgs)
import System.Directory (getCurrentDirectory)
 
main = do
	args <- getArgs
	cd   <- getCurrentDirectory
	let
		path = "python\\python.exe"  :: FilePath
		param = ["-OO", "-u", "main.py", cd] ++ args
	spawnProcess path param
Компилятор качается от сюда https://www.haskell.org/ghc/
Как прикрутить иконку написано здесь: https://wiki.haskell.org/Setting_an_executable_icon



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#10 Июль 16, 2018 17:04:06

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 813
Репутация: +  152  -
Профиль   Отправить e-mail  

кросс компиляция... питон скрипта?!

Rodegast
Я даже могу исходник такой програмки подогнать, правда он нифига не на си.
да пофиг, хоть на брейнфаке, главное шоб оно компилировалось

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version