Найти - Пользователи
Полная версия: кросс компиляция... питон скрипта?!
Начало » Python для новичков » кросс компиляция... питон скрипта?!
1 2 3
PEHDOM
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/ хз вобщем..
dbalor
Ну тогда мне наверно нужен динамически собранный исполняемый файл. Как его собрать?
чтобы ему не нужно было куда-нибудь обращаться, а все необходимые библиотеки лежали рядом в папке.
Rodegast
Тебе просто нужен исполняемый файл который будет загружать Portable Python с твоей программой. И всё.
PEHDOM
dbalor
Ну тогда мне наверно нужен динамически собранный исполняемый файл. Как его собрать?
для начала проверь чтобы дебиан не было 32-х битный(шото мне подсказывает что он таки 32-хбитный), собирая под 64-бит, хоть динамически хоть не динамически хрен ты запустиш его под 64 бит.
Обычная практика собирать или только х86 приложение , или два х86 и х64 отдельно.
dbalor
DEHDOM
Debian 64, все библиотеки на месте.
Тебе просто нужен исполняемый файл который будет загружать Portable Python с твоей программой. И всё.
Не подскажете как это реализовать? Нужно предварительно скачать portable? Или достаточно будет PyInstaller?
doza_and
dbalor
Debian 64, все библиотеки на месте.
Если все библиотеки на месте включая питон ….
dbalor
Не подскажете как это реализовать?
Вам уже несколько раз писали:
PEHDOM
запускайте ваш py файл. “компиляция”, ИМХО это только на крайний случай,

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








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

0) Забываешь про PyInstaller.
1) Если у тебя M$ то качаешь Portable Python (http://portablepython.com/wiki/Download/) иначе используешь установленный в систему.
2) Компилируешь исполняемый файл который будет запускать твою программу про помощи python-а.
И всё.
PEHDOM
dbalor
Не подскажете как это реализовать? Нужно предварительно скачать portable?
Я вообще не понимаю в чем пролема, в линуксах нужно еще постараться чтобы найти дистрибутив в котором пайтон не идет из коробки потому как самые популярные DE типа гнома и кед его используют. Единсвенное что там может стоять другая версия чем у вас.
Под вендой или использовать уже готовый портейбл пайтон(ссылку выше давали), или собрать свой с преферансом и стюардесами. Там ничего сложного, устанавливаете пайтон например в C:\python копируете куданить всю папку, удаляете пайтон. Создаете папку MyPortablePython, копируете в нее python.exe запускаете, он вам ругнеться что нет такогото файла, копируете его, запускаете, ну и так пока оно не запуститься. У меня, в свое время, ввыходило минимальный размер мегабайт в 30 при котором оно запускалось и не ругалось ни на что(это практически без модулей кроме совсем уж критических). Заодно лучше поймете как оно все устроено. Потом в самом простоми варианте создаете батник с текстом типа start <путь_к_MyPortablePython>\python.exe <путь_к_py-файлу>\<запустить.py>. .+ еще можете поиграться с перменными окружения типа path и pythonpath. В более сложном пишете в вижуал студио или еще в чемто програмку на Си на три строчки которая делает тоже самое. Тогда оно будет в виде екзешника и красивой иконкой.
Rodegast
> Тогда оно будет в виде екзешника и красивой иконкой.

Я даже могу исходник такой програмки подогнать, правда он нифига не на си.
 {-# 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
PEHDOM
Rodegast
Я даже могу исходник такой програмки подогнать, правда он нифига не на си.
да пофиг, хоть на брейнфаке, главное шоб оно компилировалось
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