motofan logo
> 

Python 2.5 + pyGame 0.9.1, Собираем игры и программы на Python'е!

shevayura
сообщение 27.11.2010, 18:30


Опытный
***

Группа: Пользователи
Сообщений: 143
Регистрация: 21.5.2006
Пользователь №: 84 197
Модель телефона: Defy+ MB526

Рейтинг: 36



Собственно я любитель сего чудного языка, но совсем не гений в ковыряниях (ни осей, ни прошивок). Совсем недавно в руки попал v8. Перепрошил его в Fusion3 Speed и в дебрях нашел python smile.gif
А именно по этому пути:
Код
/ezxlocal/download/mystuff/.system/LinXtend/usr/bin

Подключившись по ssh
Код
cd /ezxlocal/download/mystuff/.system/LinXtend/usr/bin
./python

И получил следующее:
Код
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
'import site' failed; use -v for traceback
Python 2.6.2 (r262:71600, Apr 30 2009, 09:52:21)
[GCC 3.4.3 (MontaVista 3.4.3-25.0.96.%{_mvl_build_id} 2007-11-17)] on linux2
Type "help", "copyright", "credits" or "license" for more information.

Но тут совсем негусто..
Код
>>> sys.builtin_module_names
('__builtin__', '__main__', '_ast', '_codecs', '_sre', '_symtable', '_warnings', 'errno', 'exceptions', 'gc', 'imp', 'marshal', 'posix', 'pwd', 'signal', 'sys', 'thread', 'xxsubtype', 'zipimport')

Попытка импорта os не удалась.
А вот пути питона очень странные:
Код
>>> sys.path
['', '/root/Escritorio/Python1/lib/python26.zip', '/root/Escritorio/Python1/lib/python2.6/', '/root/Escritorio/Python1/lib/python2.6/plat-linux2', '/root/Escritorio/Python1/lib/python2.6/lib-tk', '/root/Escritorio/Python1/lib/python2.6/lib-old', '/root/Escritorio/Python1/lib/lib-dynload']

учитывая что в директории /root/ отсутствуют поддиректории..

Так вот пишу всё это в надежде что есть ещё ценители сего чуда на данном форуме. Может вместе доделаем питончик и будет нам радость? smile.gif

Сообщение отредактировал PItBuLL - 16.1.2011, 7:15
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
 
Ответ в темуСоздание новой темы
Ответов
EXL
сообщение 27.11.2010, 19:16


Rock The Microphone
********

Группа: Администраторы
Сообщений: 2 980
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652
Модель телефона: XT894 / XT897
Прошивка: Различные


Настроение:
null



Рейтинг: 4612



Компиляция Python 2.2.1

Прикрепленное изображение

Для начала скачиваем тулчейн
Устанавливаем его, подробнее про установку тут, в закреплённом посту
Скачиваем собственно Python-2.2.1
Скачиваем Патч для кросс-компиляции

1. Запускаем окружение:
Код
cd /home/z6
. setenv-z6.sh


2. Распаковываем Python-2.2.1 в /home/z6:

Код
tar -C /home/z6 -xzvf /home/z6/Python-2.2.1.tgz


3. Создаём папку python в тулчейне

Код
mkdir /opt/toolchains/motomagx/arm-eabi2/python


4. Применяем патч (он должен лежать /home/z6)

Код
cd /home/z6
cat python-cross-compile.diff | patch -p0


5. Заходим в директорию питона и выполняем
Код
cd/home/z6/Python-2.2.1
./configure --host=arm-linux-gnueabi --prefix=/opt/toolchains/motomagx/arm-eabi2/python
make

После Make ругнётся, что не может запустить
./python: 1: Syntax error: word unexpected (expecting ")")
Правильно, мы ведь компилировали не под х86, а под ARM
Так что выполняем
Код
make install


6. Копируем папку /opt/toolchains/motomagx/arm-eabi2/python
в телефон, я например скопировал её в /mmc/mmca1/games/ (/mmc/mmca1- это флешка)

7. Кстати, не забываем устанавливать необходимые либы, понадобиться libutils и ещё некоторые.
Если у вас тут возникнут проблемы - стучите в асечку

8. Ну и собственно Hello World

- Создаём файл test.py
- С помощью Notepad++ пишем туда следующее:
Код
print "Hello, Motorola!"

- Сохраняем, кидаем файл куда-нибудь на телефон, например в папку /mmc/mmca1/test/
- Создаём такой скриптик start.sh:
Код

#!/bin/sh
mypath=${0%/*}
export HOME=$mypath
LIBDIR1=/ezxlocal/download/mystuff/games/lib
LIBDIR2=/mmc/mmca1/games/lib
LIBDIR3=$mypath/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$LIBDIR1:$LIBDIR2:$LIBDIR3
PYTHONHOME=/mmc/mmca1/games/python
export PYTHONHOME
PYTHONPATH=${PYTHONHOME}/lib/python2.2/site-packages:$PYTHONPATH
PYTHONPATH=${PYTHONHOME}/lib/python2.2:$PYTHONPATH
PYTHONPATH=${PYTHONHOME}:$PYTHONPATH
export PYTHONPATH

LD_LIBRARY_PATH=${PYTHONHOME}/extras:${LD_LIBRARY_PATH}
export LD_LIBRARY_PATH

exec $PYTHONHOME/bin/python2.2 -v $mypath/test.py


- Копируем скрипт в папку test, подключаемся в телнет, выполняем:
Код
/mmc/mmca1/test/start.sh


- И видим следующее
Код
ture__.pyc
Python 2.2.1 (#1, Nov 28 2010, 15:31:13)
[GCC 3.4.3 (MontaVista 3.4.3-25.0.96.%{_mvl_build_id} 2007-11-17)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Hello, Motorola!
# clear __builtin__._
# clear sys.path
# clear sys.argv
# clear sys.ps1
# clear sys.ps2


- Избавиться от мусора можно просто убрав флажок -v в скрипте
Т.е
Код
exec $PYTHONHOME/bin/python2.2 $mypath/test.py

Тогда будет просто
Код
[root@Symbiosis ~]
#> /mmc/mmca1/test/start.sh
Hello, Motorola!


Результат можно вывести в файл:
Код
exec $PYTHONHOME/bin/python2.2 $mypath/test.py > $mypath/output.txt


9. Скрипт на питоне для получения числа пи.
Код

#! /usr/bin/env python

# Print digits of pi forever.
#
# The algorithm, using Python's 'long' integers ("bignums"), works
# with continued fractions, and was conceived by Lambert Meertens.
#
# See also the ABC Programmer's Handbook, by Geurts, Meertens & Pemberton,
# published by Prentice-Hall (UK) Ltd., 1990.

import sys

def main():
    k, a, b, a1, b1 = 2L, 4L, 1L, 12L, 4L
    while 1:
        # Next approximation
        p, q, k = k*k, 2L*k+1L, k+1L
        a, b, a1, b1 = a1, b1, p*a+q*a1, p*b+q*b1
        # Print common digits
        d, d1 = a/b, a1/b1
        while d == d1:
            output(d)
            a, a1 = 10L*(a%b), 10L*(a1%b1)
            d, d1 = a/b, a1/b1

def output(d):
    # Use write() to avoid spaces between the digits
    # Use str() to avoid the 'L'
    sys.stdout.write(str(d))
    # Flush so the output is seen immediately
    sys.stdout.flush()

main()

Код

#!/bin/sh
mypath=${0%/*}
export HOME=$mypath
LIBDIR1=/ezxlocal/download/mystuff/games/lib
LIBDIR2=/mmc/mmca1/games/lib
LIBDIR3=$mypath/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$LIBDIR1:$LIBDIR2:$LIBDIR3
PYTHONHOME=/mmc/mmca1/games/python
export PYTHONHOME
PYTHONPATH=${PYTHONHOME}/lib/python2.2/site-packages:$PYTHONPATH
PYTHONPATH=${PYTHONHOME}/lib/python2.2:$PYTHONPATH
PYTHONPATH=${PYTHONHOME}:$PYTHONPATH
export PYTHONPATH

LD_LIBRARY_PATH=${PYTHONHOME}/extras:${LD_LIBRARY_PATH}
export LD_LIBRARY_PATH

exec $PYTHONHOME/bin/python2.2 $mypath/pi.py > $mypath/pi.txt

Ждём с минутку, нажимаем Ctrl + C, и в файле pi.txt будет число пи smile.gif

10. Примеры скриптов, демок итд можно посмотреть в файле /home/z6/Python-2.2.1/Demo

В общем направление я дал. Дело за вами)
Теперь насчёт pyGame и визуальной оболочки.
pyGame реально портировать, он уже портирован на такие устройства как Dingoo A320, GP2X думаю нам нужно будет сделать лишь вывод изображения
Я не сильно знаком с питоном, но если из него можно будет запускать необходимые шоумодули - получим оболочку.

При написании мануала пользовался этим - ARM Cross-compiling Python и статьёй уважаемого racinglocura07

Зеркала. Прикрепил все файлы на мотофан:

Скачать исходники Python-2.2.1
Скачать патч python-cross-compile
Скачать уже откомпилированный Python-2.2.1 для Z6/V8/EM30/ZN5 и прочих MotoMagx
Скачать HelloWorld'ы, примеры скриптов
Прикрепленный файл python-cross-compile.7z   ( 1.87 килобайт ) Кол-во скачиваний: 725
Прикрепленный файл python.7z   ( 1.59 мегабайт ) Кол-во скачиваний: 976
Прикрепленный файл Python-2.2.1.tgz.7z   ( 6.23 мегабайт ) Кол-во скачиваний: 1510
Прикрепленный файл test.7z   ( 4.77 килобайт ) Кол-во скачиваний: 720
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить

Сообщений в этой теме
shevayura   Python 2.5 + pyGame 0.9.1   27.11.2010, 18:30
EXL   Компиляция Python 2.2.1 Для начала скачиваем [u...   27.11.2010, 19:16
shevayura   Если будет pyGame - цены мотору не будет :) Ещё оч...   27.11.2010, 19:38
shevayura   Что-то у меня не получилось запустить собранный мн...   3.12.2010, 12:26
shevayura   Собранный Python 2.6.2 Скачать Особенности: - Соб...   22.12.2010, 10:01
shevayura   Update Была ошибка в скрипте запуска! Вот ис...   14.1.2011, 10:53
are_ed   still not get it :helpsmilie:   15.1.2011, 20:02
EXL   [size=4]Python 2.5 + pyGame 0.9.1 [b]Вики: Pyt...   16.1.2011, 5:06
K()t   EXL, у меня на е8 запускается только тетрис. Лог д...   16.1.2011, 14:01
SanchoNT   5. Breakout Назначение: Арканоид Автор: John Chee...   16.1.2011, 14:14
EXL   Нужно смотреть лог, так я тебе сказать ничего не...   16.1.2011, 16:07
Hairo Carela   i'ts quite easy... :) but it seems to be some ...   18.1.2011, 17:42
EXL   Yes, unfortunately sound doesn't work yet. I...   19.1.2011, 14:59
Hairo Carela   You can install some new modules... - Look for a...   20.1.2011, 1:00
Hairo Carela   [size=4]7. Asteroids Infinity [color=#3333FF]Назн...   22.1.2011, 15:48
shevayura   Вот пережал Python 2.5 c PyGame. Оптимизировал пап...   26.1.2011, 8:48
EXL   [size=4]8. pyBlocks [color=#3333FF]Назначение: Кл...   29.1.2011, 18:09
Irony   Получилось запустить только питона 2.2 версии из п...   1.2.2011, 16:52
EXL   Выложите скрипты, которые запускаете ./start2.sh и...   1.2.2011, 17:01
Irony   Start2.sh #!/bin/sh mypath=${0%/*} expor...   1.2.2011, 19:46
EXL   Не знаю что за проблема. Как вариант, можно попроб...   2.2.2011, 7:22
Irony   Я сливал именно через ftp, сейчас попробую P.S. В...   2.2.2011, 10:23
Hairo Carela   [size=4]10. SHIPPU GSS [color=#3333FF]Назначение:...   3.2.2011, 16:09
Hairo Carela   This time, an app :laugh: 100 [size=4]11. EXIF ...   4.2.2011, 17:08
Hairo Carela   [size=4]12. pyDiskUsage [color=#3333FF]Назначение...   24.2.2011, 18:01
Hairo Carela   [size=4]13. pySlide [color=#3333FF]Назначение: Пя...   26.2.2011, 16:19
XXX_S_B   [size=4]14. RedGiant [color=#3333FF]Назначение: К...   28.2.2011, 13:24
(-EDGE-)   Я от этого далек, но все же рискну спросить. А ник...   21.4.2014, 8:37
EXL   Нет, топовые игры для N-Gage не написаны на пайто...   21.4.2014, 8:55
(-EDGE-)   Нет, топовые игры для N-Gage не написаны на пайт...   21.4.2014, 16:42
EXL   Нормального (портабельного) эмулятора N-Gage нет....   21.4.2014, 20:43
fill.sa   Питончик обновили до 2.7.16 Консольные приложения ...   6.1.2020, 0:05
fill.sa   Vinrarus захотел запустить youtube-dl, а он как ра...   26.1.2020, 20:14
EXL   Разве она на Python 2? Вроде как на Python 3, а э...   27.1.2020, 9:43
J()KER   Разве она на Python 2? Вроде как на Python 3, а ...   27.1.2020, 18:13
VINRARUS   Аааа, ну тогда это не ЯП, а собачий сюрприз в тап...   27.1.2020, 18:01
fill.sa   Тоже глянул в гите https://github.com/ytdl-org/yo...   28.1.2020, 13:05
EXL   fill.sa, Ну что там? Получается?   6.2.2020, 8:15
fill.sa   Пока с винрарусом никак не состыкуемся, последнее...   6.2.2020, 8:47
EXL   Кажется это значит, что где-то в этой строке или ...   6.2.2020, 8:55
fill.sa   Там идет сжатый файл питона, но т.к. zlib-python ...   7.2.2020, 14:10
EXL   zlib (libz) Должна быть как в самой прошивке теле...   10.2.2020, 7:44
fill.sa   EXL, Он то есть, но питон требует отдельно. Я так...   11.2.2020, 18:22
fill.sa   В продолжение темы, неплохая статья с хабра https...   20.2.2020, 22:02

Python 2.5 + pyGame 0.9.1, Собираем игры и программы на Python'е! · Motorola ZINE ZN5, ZN5 T-Mobile · Forum
 

Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 1.6.2024, 21:12

Форум живёт: