Установка Python c нуля для Компас-3D.

Автор ТрындецЪ, 10.11.17, 16:21:43

« предыдущая - следующая »

0 Пользователей и 1 гость просматривают эту тему.

ТрындецЪ

Многие пользователи сталкиваются с проблемой неработоспособности программ (макросов), написанных на Pyton под КОМПАС.
Зачастую, проблема эта происходит из-за того, что в момент установки базовой конфигурации КОМПАС-3D не была установлена библиотека КОМПАС-МАКРО (по умолчанию её установка отключена).
      Для установки КОМПАС-МАКРО на уже установленный КОМПАС-3D, необходимо иметь дистрибутив установленного КОМПАСа.
Запустить файл Setup.exe Базовой конфигурации и, из предложенных пунктов "Изменить", "Восстановить", "Удалить" , выбрать пункт "Изменить" (см. скрин №1), после чего, в открывшемся окне, найти в дереве библиотеку КОМПАС-МАКРО  (см.скрин №2), кликнуть на пиктограмму слева от неё и, в появившемся меню, выбрать пункт "Данный компонент будет установлен на локальный жесткий диск" и продолжить установку новых компонентов.
Библиотека КОМПАС-МАКРО устанавливает Pyton и все необходимые модули для его работы с API КОМПАС-3D.
До 17 версии КОМПАСа устанавливался Pyton версии 2.х,  17-й КОМПАС уже ставит Pyton версии 3.х.
Это так же может быть причиной неработоспособности макросов, т.к. не все макросы, написанные под Pyton 2.х будут работать на Pyton 3.х и наоборот.

      С КОМПАС-МАКРО немного разобрались, но что делать тем пользователям, у которых не остался дистрибутив КОМПАСа?
Этот вопрос и натолкнул меня на создание этой темы.
Хотелось бы тут создать универсальную инструкцию по установке Pyton любой версии, способного работать с КОМПАС-3D.
Лично мне бы хотелось иметь обе работоспособные версии Pyton. 2.6 у меня уже стоит, хочется поставить 3.6.


kloss

а не подскажите литературу по изучению Питона?

ТрындецЪ

Нашёл Portable Python 3.2.5.1 в комплекте с библиотеками и редакторами. С КОМПАСом работает, проверено.

Цитата: kloss от 21.11.17, 21:58:40
а не подскажите литературу по изучению Питона?

Мне понравилось вот это обучающее приложение на Android
Вот ещё ссылки от Вячеслава Никонова:
Сайт, на который почти всегда выводит google по запросам связанным с Python
Ещё один сайт, о нём ничего сказать не могу

Вират Лакх

Вот отсюда https://sourceforge.net/projects/pyscripter/files/PyScripter-v2.6/ взял PyScripter-v2.6.0-x64.zip
Если в программе выставить Движок Python - Удаленный, то запуск на Ctrl+F9 макроса выдает: UnicodeEncodeError: 'ascii' codec can't encode character u'\u0412' in position 9: ordinal not in range(128)
Переставляю на Внутренний, получаю на строках
try:
    import Tkinter as tk
    import tkMessageBox
except:
    import tkinter as tk
    import tkinter.messagebox as tkMessageBox
ошибку на строке "import tkinter as tk" (ImportError: No module named tkinter), т.е. который для 3-го питона. У меня питон 2.6.
В итоге работает Внешний пуск Alt+F9.
Можно было бы так и пользоваться внешним пуском, но отладкой воспользоваться не получится.
Вроде как из-за этой UnicodeEncodeError и комментарии в коде не воспринимаются. В окне вывода тоже эти кодировки замешаны, когда, например, имя файла должно выводится русскими буквами, а вместо них не пойми что.
Разобраться бы с этими кодировками.
Писать макросы и программы на Python для Компас может каждый. Могу научить за вознаграждение. Обращаться в ЛС.

Вират Лакх

Тут https://ru.wikipedia.org/wiki/Python сказано: "Сохранение байт-кода (расширения .pyc и, до версии 3.5, .pyo) позволяет интерпретатору не тратить лишнее время на перекомпиляцию кода модулей при каждом запуске."
Если мы для запуска макроса используем файлы .pyw, то они после сохранения в байт-код становятся .pywc, которые тоже запускаются pythonw.exe. Почему-то при установке питона такой тип файла не прописывается, и надо будет самому указать программу для открытия.
Чтобы сохранить в байт-код, используется команда python -m py_compile %1 (см. приложенный py_compile.bat), где %1 - это сохраняемый файл .pyw, указанный как параметр. Чтобы python можно было вызвать из любого каталога, нужно полный путь прописать к нему типа C:\Python26\python.exe или добавить через точку с запятой ";" папку с питоном в переменную среды Path.
Писать макросы и программы на Python для Компас может каждый. Могу научить за вознаграждение. Обращаться в ЛС.

Вират Лакх

Питон должен быть строго той версии, что идет с дистрибутивом компаса \Base\Support\
Например, я установил pywin32-221.win-amd64-py2.6 вместо дистрибутивного pywin32-214.win-amd64-py2.6, и всё вроде работало, пока не получил глюк с получением коллекции базовых объектов спецификации iApplication.ActiveDocument.SpecificationDescriptions.Active.BaseObjects
Писать макросы и программы на Python для Компас может каждый. Могу научить за вознаграждение. Обращаться в ЛС.

SerGoVec


Вират Лакх

Цитата: Вират Лакх от 29.11.17, 06:52:41
Питон должен быть строго той версии, что идет с дистрибутивом компаса \Base\Support\
Например, я установил pywin32-221.win-amd64-py2.6 вместо дистрибутивного pywin32-214.win-amd64-py2.6, и всё вроде работало, пока не получил глюк с получением коллекции базовых объектов спецификации iApplication.ActiveDocument.SpecificationDescriptions.Active.BaseObjects

А глюк был на самом деле в неправильном коде, который работал на pywin32-214, а на новом pywin32-221 - нет. Можно ставить новые версии.
Писать макросы и программы на Python для Компас может каждый. Могу научить за вознаграждение. Обращаться в ЛС.

pr0100

23.05.18, 23:58:19 #9 Последнее редактирование: 24.05.18, 00:23:52 от pr0100
 В этом посте рассмотрим установку на свой ПК двух версий Python2 и 3.

Рассмотрим различия:
Существует две версии Python 3х и Python2x. Не будем вдаваться сильно в различия. Отличаются они синтаксисом. И при просмотре исходного кода взятого с форума можете определить версию по синтаксису.
Пример вывода сообщения:
Цитироватьprint 'test'- Python 2x
print ('test') - Python 3x

Здесь примечательно, что строка написанная на python 3 будет работать в python 2, строка же из python 2 во втором не будет.

Еще стоит подчеркнуть, что если в коде вы уведите литерал u'Текст - Это явно Python 2x, и наличие литерала в Python 3 возможно выдаст ошибку.
Для преобразования исходного кода из Python 2 в Python 3 имеется скрипт 2to3, подробнее инструкцию можно прочитать в справке библиотеки Компас-Макро.

Ранее до 17го компаса при установке библиотеки Компас-Макро в корень каталога диска "C" устанавливался Python26 со всеми библиотеками. И по этому выполнение макроса срабатывало при даблклике.
В версии 17 используется портабельная версия Python 3.2.5 c которой работает библиотека Компас-Макро. И для выполнения макроса при клике по иконке необходимо указать для расширения файла *.py, *.pyw приложение, в нашем случае портабельный Python. Изменим на "C:Program FilesASCONKOMPAS-3D v17LibsKompas-MacroPython 3Python-Portable.exe"


Что делать, если хочется иметь две версии Python, либо установить стационарно, чтобы при удалении Компаса, компас не удалил?

Установка Python 3:
1 Скачаем и установим Python 3.6.5 по ссылке: https://www.python.org/ftp/python/3.6.5/python-3.6.5.exe
2 При установке установим Pip
3 После установки запустим командную строку. И проверим установку. Пропишем 'py' - в консоль высветится версия. Далее к примеру можно работать как с калькулятором.
4 Выйдем из консоли python, пропишем quit()
5 Проверим какие модули установлены. В командной строке пишем 'pip list', откроется список установленных библиотек. Там наверняка нет модуля который необходим для компаса. Конкретно pywin32 (ошибка pythoncom)
6 Пишем pip install pywin32, у вас по сети скачается и установится пакет.
Работаем с макросами python 3.

Установка Python 2:
1 Скачаем и установим Python 2.7 по ссылке: https://www.python.org/ftp/python/2.7.15/python-2.7.15.msi
2 Скачаем и установим PyWin32 по ссылке: https://sourceforge.net/projects/pywin32/files/pywin32/Build%20217/pywin32-217.win32-py2.7.exe/download
3 После установки некоторые макросы работать не будут. Необходимо найти библиотеки которые ставились для 16го компаса и положить их в C:Python27Libsite-packagespythonwin (см. скрин)
4. Работаем с макросами python 2

VLaD-Sh

Вот спасибо, то что доктор прописал!  :fr:
У каждого своё мнение,и каждый по-разному в нём тонет

VLaD-Sh

24.05.18, 17:45:41 #11 Последнее редактирование: 24.05.18, 18:34:19 от VLaD-Sh
Блин, полдня потребовалось, чтобы понять что надо поставить галку при установке  8-)
У каждого своё мнение,и каждый по-разному в нём тонет

Sabahs

Так, почти по Русски написано.

VLaD-Sh

Цитата: Sabahs от 24.05.18, 18:22:24
Так, почти по Русски написано.

Ключевое слово ПОЧТИ  :)
У каждого своё мнение,и каждый по-разному в нём тонет

Вират Лакх

10.11.18, 03:24:25 #14 Последнее редактирование: 10.11.18, 05:40:54 от Вират Лакх
Чтобы одна и та же программа работала на 2 и 3 питоне, можно в начале написать универсальный код. Варианты:
1. Если используется Tkinter:

# -*- coding: utf8 -*-
try: import Tkinter as tk, tkMessageBox, sys; reload(sys); sys.setdefaultencoding('utf8')
except: import tkinter as tk, tkinter.messagebox as tkMessageBox

1. Если не используется Tkinter:

# -*- coding: utf8 -*-
try: import sys; reload(sys); sys.setdefaultencoding('utf8')
except: pass

То, что находится в try, - это для питона 2.х. Оно избавляет от необходимости ставить мешающую в питоне 3.х u перед русским "Текстом".
upd.
print с русским текстом все равно надо писать через u во втором питоне.
Писать макросы и программы на Python для Компас может каждый. Могу научить за вознаграждение. Обращаться в ЛС.

matb

03.12.18, 08:24:22 #15 Последнее редактирование: 03.12.18, 08:44:00 от matb
Вират Лакх, плиз, подскажите какой питон рекомендуете использовать для 18 компаса?

Начали использовать несколько недель назад 18 и выяснилось что нет пользовательских панелей ... Может есть видео? Питон не использовали раньше. См. обратные ссылки на этот пост.
Python
http://forum.ascon.ru/index.php/topic,21333.0.html
Панель инструментов на Python.
http://forum.ascon.ru/index.php/topic,29263.0.html

Как ставить питон уже  давно написано.
2.6 идёт до 17й
Похоже, что надо Python 3.6.
для
Пользовательские панели - импорт/экспорт
http://forum.ascon.ru/index.php/topic,31595.msg253934.html#msg253934

Настоятельно рекомендую пользоваться ссылкой СТП для отзывов по решению запросов http://wizard.sd.ascon.ru/index.php/389224/lang-ru

Вират Лакх

Цитата: matb от 03.12.18, 08:24:22
Вират Лакх, плиз, подскажите какой питон рекомендуете использовать для 18 компаса?

Любую версию. Можно не заморачиваться и использовать идущий в комплекте питон.
Писать макросы и программы на Python для Компас может каждый. Могу научить за вознаграждение. Обращаться в ЛС.

matb

Спасибо.
http://softobase.com/ru/python
Версия: 3.7.1
от 29.10.2018
Размер: 30 Mb
тогда для 18 компаса начнем применять..
А в "Можно не заморачиваться и использовать идущий в комплекте питон." там какая версия?
Настоятельно рекомендую пользоваться ссылкой СТП для отзывов по решению запросов http://wizard.sd.ascon.ru/index.php/389224/lang-ru

Вират Лакх

Какие-то софтобазы... Берите у источника: https://www.python.org/downloads/release/python-371/
Вам еще это может быть нужно: https://github.com/mhammond/pywin32/releases
"там какая версия?" - говорят, что 3.2 вроде.
Писать макросы и программы на Python для Компас может каждый. Могу научить за вознаграждение. Обращаться в ЛС.

Вират Лакх

Дополнение к « Ответ #18 : 03.12.18, 13:51:31 »
Чтобы логически закончить установку питон с нуля для Компас, нужно знать ещё подключение к Компас.
При таком подключении (см. ссылку), как я понимаю, нет необходимости заниматься с библиотекой КОМПАС-МАКРО. http://forum.ascon.ru/index.php/topic,31309.msg257247.html#msg257247
Писать макросы и программы на Python для Компас может каждый. Могу научить за вознаграждение. Обращаться в ЛС.