Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 10, 2010 22:44:10

Miatar
От:
Зарегистрирован: 2010-10-10
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Питон в качестве скриптового языка.

Собсно хочу использовать его в качестве языка логики своей программы плюс для написания аддонов “на лету”. Вопрос в том, что нужно иметь у конечно пользователя кроме python##.dll? Честно говоря, непонятно встроены ли модули, идущие в комплекте со стандартным питоновским дистрибутивом(например ctypes), в саму длл или их надо тоже иметь конечному пользователю для запуска уже написанного скрипта.
Ну и вопрос вытекающий из первого - как объединить модули в один фаил. py2exe не вариант тк мне нужно чтобы питоновский скриптор(среда запуска питон скриптов) была в виде динамической dll которая будет подключаться к приложению, по потребности. Кроме того надеюсь наладить сильное взаимодействие свое кода C++ и Python.
Плюс хотелось бы узнать можно ли хранить модули в dll и запускать их потребности. PyRun_SimpleString интересен, но код будет выглядеть чудовищно.

Спс за ответы.



Отредактировано (Окт. 10, 2010 22:49:23)

Офлайн

#2 Окт. 11, 2010 06:25:59

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Питон в качестве скриптового языка.

Python позволяет полностью, если не больше, конролировать процесс импорта модулей (в одном проекте я импортировал их из сети по некому протоколу с кешированием). В вашем случае я бы посоветовал ещё покурить CPython и попробовать собрать компилятор статически в свою DLL. Мне удавалось это под виндой (в своё время) при том что знания C и особенностей mingw32 очень и очень поверхностны. При адекватной статической сборке никаких внешних зависимостей не сохранится и все модули можно будет хранить там же, в ресурсах DLL (для этого свой импортёр понадобится). Во всяком случае “батарейки” имеет смысл запихать в свою DLL, так как они меняться будут только при смене версии Python.

..bw



Офлайн

#3 Окт. 11, 2010 09:47:35

Isem
От:
Зарегистрирован: 2010-08-27
Сообщения: 447
Репутация: +  7  -
Профиль   Отправить e-mail  

Питон в качестве скриптового языка.

Какая проблема в том, чтобы взять где-нибудь питон и установить его совершенно бесплатно?



Офлайн

#4 Окт. 11, 2010 09:49:48

Miatar
От:
Зарегистрирован: 2010-10-10
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Питон в качестве скриптового языка.

Мысль понял, хотелось поподробнее на эту тему. В небезызвестной EVE Online, dll идет отдельно, но все модули упакованы в небольшое число фаилов. Хотелось бы узнать как они это сделали, и можно ли читать модули “прямо из себя”?

Счас изучаю вдобавок Cython. Но в связи с тем что компилируется по мануалу он только в MinGw, поддерживать будет намного сложнее чем простые ctypes.

А проблема отдельного установщика опять же в том что версии могут разойтись, да и напрягать конечного пользователя установкой чего либо не аис.



Отредактировано (Окт. 11, 2010 10:05:48)

Офлайн

#5 Окт. 11, 2010 10:02:52

ziro
От:
Зарегистрирован: 2009-08-13
Сообщения: 225
Репутация: +  8  -
Профиль   Отправить e-mail  

Питон в качестве скриптового языка.

ЕМНИП в EVE Online используется stackless python - http://www.stackless.com/ - может сразу его имеет смысл использовать?

Ну и обычный вопрос - а Lua - не подходит?



Офлайн

#6 Окт. 11, 2010 10:15:14

Miatar
От:
Зарегистрирован: 2010-10-10
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Питон в качестве скриптового языка.

Просто python ближе. Lua без доп библиотек ограничен экспортированными в него функциями. Модель классов в питоне если не удобнее то гораздо ближе мне как C++ кодеру. Ну еще и ворох других причин.

Касаемо стаклесса - разве интерпретатор имеет отношение к сборке модулей в один фаил? Надо покурить мануал на тему статической сборки Python, однако ограничение в виде MinGw пока не радует.



Офлайн

#7 Окт. 11, 2010 10:20:11

Miatar
От:
Зарегистрирован: 2010-10-10
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Питон в качестве скриптового языка.

Нашел zipimport - курю его.



Офлайн

#8 Окт. 11, 2010 10:32:50

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

Питон в качестве скриптового языка.

Андрей Светлов начинал писать цикл статей на эту тему…
http://asvetlov.blogspot.com/2010/05/blog-post.html
http://asvetlov.blogspot.com/2010/05/2.html
http://asvetlov.blogspot.com/2010/05/3.html
…но, почему-то, не дописал. Жаль.



Офлайн

#9 Окт. 11, 2010 11:06:30

Miatar
От:
Зарегистрирован: 2010-10-10
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Питон в качестве скриптового языка.

Интересное обсуждение тут:
http://stackoverflow.com/questions/1830727/how-to-load-compiled-python-modules-from-memory

Но вопрос так и не решен - нужно ли с собой таскать СТАНДАРТНЫЕ модули. Похоже единственный образ узнать это проверить.



Офлайн

#10 Окт. 11, 2010 13:11:35

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Питон в качестве скриптового языка.

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

..bw



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version