Вверх ↑
Этот топик читают: Гость
Ответов: 5446
Рейтинг: 323
#1: 2009-06-07 22:52:02 ЛС | профиль | цитата
По работе потребовалось изучить Python, так до сих пор в восторге от этого языка. Вот решил и пользователей HiAsm познакомит с ним. На данный момент я ещё не знаю, буду ли добавлять возможность создания GUI (но если буду - то точно на Tkinter). Пакет частично слизан с пакета VBS (автор - lev).

Пакет основан на ветке 2.6.х.

Для запуска программ под Windows необходимо скачать Python отсюда ("Python 2.6.4 Windows installer"). После установки рекомендуется вручную прописать путь к python.exe в переменной окружения Path. Для использования компонентов Win32_xxx необходима установка пакета Python for Windows extensions ("pywin32-214.win32-py2.6.exe"). Для компиляции в exe необходим py2exe. Для работы с БД MySQL необходим модуль MySQLdb

Для запуска программ под Mac OS необходимо скачать Python отсюда ("Python 2.6.4 Mac installer disk image")
Для запуска программ под Linux необходимо установить Python в соответствии с инструкциями для конкретной ОС (будьте внимательны и не поставьте по ошибке 3ю версию python-а!)

Про язык Python читаем тут (на английском). Есть русский сайт, но он выглядит заброшенным. Начало темы тут.

Ну и собственно пакет + компилятор + замена компилятора.
Архива по ссылкам обновляются очень редко, самая свежая версия - на SVN!!!

Как всегда, для сборки понадобится sqlite3.exe. У меня он уже давно (ещё вроде с 3х ветки, когда он в дисрибутив входил) лежит в %hiasm%int, исходя их этого и написан скрипт sql_to_db.bat. Соответственно, если этого файла там нет - надо либо поправить скрипт, либо положить туда этот файл. Схема дальнейшей сборки: make.bat, потом Python.his. Пересобирать make_py.dll теперь не обязательно.
карма: 1

9
Голосовали:LainX, MAV, Rumata, ThE_DimaN, Konst, flud, Ivann, Alexbootch, zl0y
Главный модератор
Ответов: 2999
Рейтинг: 396
#2: 2009-06-07 23:26:12 ЛС | профиль | цитата
Запуск сборки пустой схемы:

карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
файлы: 1python_1.png [6.4KB] [3353]
Ответов: 1161
Рейтинг: 160
#3: 2009-06-07 23:33:23 ЛС | профиль | цитата
все прекрасно работает
карма: 0

0
Главный модератор
Ответов: 2999
Рейтинг: 396
#4: 2009-06-07 23:42:36 ЛС | профиль | цитата
содержимое Elements.sql:

#sql
...
INSERT INTO "elements" VALUES(61,'FormatStr','Форматированная строка',24,5,'');
INSERT INTO "elements" VALUES(61,'FormatStrEx','Форматированная строка',24,15,'');
...

make.bat писал(а):

SQL error: PRIMARY KEY must be unique

------------ Дoбавленo в 23.47:
Debug писал(а):

Ошибка компиляции, код [3]:точка входа в библиотеку не найдена

------------ Дoбавленo в 23.54:
Nic писал(а):

Выяснилось, что если имя схемы совпадает с именем файла в папке \code, то при "компиляции":


Компоновка проекта...
Command line: copyer.exe "C:\HiAsm\Elements\vbs\code\RegExp.hws" "C:\SHA\Vbs\RegExp.vbs"
Copy from C:\HiAsm\Elements\vbs\code\RegExp.hws to C:\SHA\Vbs\RegExp.vbs
Сборка завершена.


файл затирается вновь создаваемым. Поэтому надо поменять расширение файла создаваевого проекта на отличное от .HWS


------------ Дoбавленo в 23.57:
Последнее замечание касается также пакета Python и может быть и Web
------------ Дoбавленo в 00.19:
С ошибкой сборки такое дело: если сам компилирую make_xxx.dll - тогда ошибка описана выше. Поэтому, iarspider, выложи здесь саму dll.
------------ Дoбавленo в 00.19:
В пакете Vbs такая же фигня
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Ответов: 5446
Рейтинг: 323
#5: 2009-06-08 00:36:12 ЛС | профиль | цитата
Nic, по поводу не найденной библиотеки - спасибо, исправил 1й пост.

В sql файле надо так:

INSERT INTO "elements" VALUES(62,'FormatStrEx','Форматированная строка',24,15,'');

Пакет перезалил (make_py.dll в комплекте)
------------ Дoбавленo в 02.02:
Новые компоненты: Memory, Var, GlobalVar.

Для любителей SQL:

#sql
INSERT INTO "elements" VALUES(15,'Memory','Память',15,6,'');
INSERT INTO "elements" VALUES(70,'GlobalVar','Глобальная переменная',15,11,'');
INSERT INTO "elements" VALUES(270,'Var','Переменная',15,12,NULL);

Для любителей his:

function run() {
if (sys.extelement("Python", "Memory"))
sys.message("Element with name Memory already exists");
else sys.addelement("Python", "Memory", "Память", "Tools");

if (sys.extelement("Python", "GlobalVar"))
sys.message("Element with name GlobalVar already exists");
else sys.addelement("Python", "GlobalVar", "Глобальная переменная", "Tools");

if (sys.extelement("Python", "Var"))
sys.message("Element with name Var already exists");
else sys.addelement("Python", "Var", "Переменная", "Tools");
}

Компоненты в прищепке. Архив в 1м посте буду обновлять примерно раз в сутки.
карма: 1

0
файлы: 1memvargvar.zip [8.6KB] [614]
Главный модератор
Ответов: 2999
Рейтинг: 396
#6: 2009-06-08 09:30:11 ЛС | профиль | цитата
iarspider писал(а):
Компоненты в прищепке


На SVN удобнее. Поговори с Dilma.
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Ответов: 5446
Рейтинг: 323
#7: 2009-06-08 19:43:11 ЛС | профиль | цитата
Nic, уже просил два раза - ответа нет...
карма: 1

0
Ответов: 1304
Рейтинг: 405
#8: 2009-06-09 00:12:26 ЛС | профиль | цитата
iarspider, при сборке не происходит автоматический перенос списка Elements.sql в Elements.db, пришлось заменить в sql_to_db.bat

@echo off
if exist Elements.db del Elements.db
..\..\int\sqlite3.exe Elements.db <Elements.sql
на

sqlite3.exe Elements.db <Elements.sql
и притащить в папку с пакетом sqlite3.exe.
При указании пути к компилятору "C:\Python31\python.exe", происходит вот что
Подготовка к сборке проекта...
Генерация кода целевого языка
Компоновка проекта...
Command line: python.exe /k copy "C:\Program Files\HiAsm\Elements\Python\code\Project1.hws" "C:\Program Files\HiAsm\Project1.py"
python.exe: can't open file '/k': [Errno 2] No such file or directory
Сборка завершена.

при этом файл проекта не появляется.
Пришлось вернуться к настройкам проекта по умолчанию и запускать файл проекта(py) в ручную.
Кстате в тройке есть папочка с примерами GUI
карма: 3

0
файлы: 1python1.sha [6.7KB] [726]
Ответов: 215
Рейтинг: 45
#9: 2009-06-09 01:04:18 ЛС | профиль | цитата
Мой make_py.dll для желающих опытов.
карма: 0

0
файлы: 1make_py.rar [10.8KB] [576]
Ответов: 5446
Рейтинг: 323
#10: 2009-06-09 02:10:29 ЛС | профиль | цитата
MAV, у меня sqlite3.exe лежит в %hiasm%int с незапамятных времён, поэтому путь прописан туда. Мой sql_to_db лучше тем, что мне при обновлении sql файла не нужно помнить о том, что db файл надо стереть перед обновлением.

Далее, а какого, простите, лешего, ты используешь python в качестве компилятора, а?! В настроках компилятора cmd был прописан специально (сравни с vbs или web).

Про GUI на Tkinter у меня в столе лежит фолиант на 650+ страниц (плюс электронная копия в PDF в архиве с дркгими книгами), так что недостатка в информации у меня нет. Другое дело, что я хочу сначала сделать полную элементную базу для консоли (списки, словари, последовательности, tuples, ..., ..., ...), а потом может добавить GUI-шные компоненты.

И, наконец, я в 1м посте чётко написал, что качать надо версию 2.6.х, так как я под ней проверяю сгенерированный код.

lev, а можно исходник?
карма: 1

0
Ответов: 1304
Рейтинг: 405
#11: 2009-06-09 20:15:37 ЛС | профиль | цитата
iarspider писал(а):
у меня sqlite3.exe лежит в %hiasm%int с незапамятных времён

а почему у меня там ничего нет , конечно страшного в этом ничего нет, но количество питонцев от этого не увеличится.
iarspider писал(а):
Далее, а какого, простите, лешего, ты используешь python в качестве компилятора
уже не использую (недостаток знаний)
iarspider писал(а):
я в 1м посте чётко написал, что качать надо версию 2.6.х

а мне показалось, там написано "но должен быть совместим и с 3.х", кто-то ведь должен был проверить .

карма: 3

0
Ответов: 5446
Рейтинг: 323
#12: 2009-06-09 20:38:52 ЛС | профиль | цитата
MAV, я старался учитывать всевозможные примечания про совместимость с 3.х. Собственно, если ты осознанно выбрал версию 3.х - тогда нет вопросов. Сейчас подновлю инструкцию в 1м посте...
карма: 1

0
Гость
Ответов: 17029
Рейтинг: 0
#13: 2009-06-11 01:23:35 правка | ЛС | профиль | цитата


Редактировалось 7 раз(а), последний 2022-09-20 04:40:48
карма: 0

0
Ответов: 5446
Рейтинг: 323
#14: 2009-06-11 01:24:10 ЛС | профиль | цитата
Это был я (для разделения сообщений).
карма: 1

0
Главный модератор
Ответов: 2999
Рейтинг: 396
#15: 2009-06-11 01:36:52 ЛС | профиль | цитата
iarspider, мог и не разделять. Если со времени создания поста прошли сутки, то следующий пост будет новым автоматически - проверено.
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)