Форум пользователей ПО АСКОН

Профессиональные вопросы => Программирование приложений => Python и КОМПАС-Макро => Тема начата: ТрындецЪ от 10.11.17, 16:21:43

Название: Установка Python c нуля для Компас-3D.
Отправлено: ТрындецЪ от 10.11.17, 16:21:43
Многие пользователи сталкиваются с проблемой неработоспособности программ (макросов), написанных на 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.
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: Вячеслав Никонов от 10.11.17, 18:01:39
Вот ещё несколько ссылок как установить и настроить Python:
https://habrahabr.ru/post/42971/
http://codelessons.ru/soft/nachalo-raboty-s-python-3-ustanovka-python-idle.html
http://www.intuit.ru/studies/courses/3586/828/lecture/28993
http://xn--80afqpaigicolm.xn--p1ai/python/ustanovka-python-na-windows-7/
http://o7planning.org/ru/11375/installing-and-configuring-python
http://devpractice.ru/python-lesson-1-install/
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: kloss от 21.11.17, 21:58:40
а не подскажите литературу по изучению Питона?
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: ТрындецЪ от 21.11.17, 22:41:11
Нашёл Portable Python 3.2.5.1 (http://portablepython.com/wiki/PortablePython3.2.5.1) в комплекте с библиотеками и редакторами. С КОМПАСом работает, проверено.

Цитата: kloss от 21.11.17, 21:58:40
а не подскажите литературу по изучению Питона?
Мне понравилось  вот это обучающее приложение на Android (https://play.google.com/store/apps/details?id=com.sololearn.python&hl=ru)
Вот ещё ссылки от Вячеслава Никонова:
Сайт, на который почти всегда выводит google по запросам связанным с Python (https://pythonworld.ru)
Ещё один сайт, о нём ничего сказать не могу (https://www.jetbrains.com/pycharm-edu)
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: Вират Лакх от 25.11.17, 05:52:05
Вот отсюда 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 и комментарии в коде не воспринимаются. В окне вывода тоже эти кодировки замешаны, когда, например, имя файла должно выводится русскими буквами, а вместо них не пойми что.
Разобраться бы с этими кодировками.
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: Вират Лакх от 27.11.17, 06:46:23
Тут 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.
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: Вират Лакх от 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
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: SerGoVec от 08.12.17, 16:39:45
Думаю будет не лишним - https://habrahabr.ru/post/323078/
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: Вират Лакх от 02.02.18, 05:40:07
Цитата: Вират Лакх от 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 - нет. Можно ставить новые версии.
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: pr0100 от 23.05.18, 23:58:19
 В этом посте рассмотрим установку на свой ПК двух версий 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"
(https://pp.userapi.com/c845321/v845321607/5ccd0/16h9upBohUc.jpg)

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

Установка Python 3:
1 Скачаем и установим Python 3.6.5 по ссылке: https://www.python.org/ftp/python/3.6.5/python-3.6.5.exe (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 (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 (https://sourceforge.net/projects/pywin32/files/pywin32/Build%20217/pywin32-217.win32-py2.7.exe/download)
3 После установки некоторые макросы работать не будут. Необходимо найти библиотеки которые ставились для 16го компаса и положить их в C:Python27Libsite-packagespythonwin (см. скрин)
4. Работаем с макросами python 2
(https://pp.userapi.com/c830709/v830709787/fbe4e/aFBuQr5_zOA.jpg)
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: VLaD-Sh от 24.05.18, 06:41:37
Вот спасибо, то что доктор прописал!  :fr:
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: VLaD-Sh от 24.05.18, 17:45:41
Блин, полдня потребовалось, чтобы понять что надо поставить галку при установке  8-)
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: Sabahs от 24.05.18, 18:22:24
Так, почти по Русски написано.
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: VLaD-Sh от 24.05.18, 18:34:46
Цитата: Sabahs от 24.05.18, 18:22:24
Так, почти по Русски написано.
Ключевое слово ПОЧТИ  :)
Название: Re: Установка Python c нуля для Компас-3D
Отправлено: Вират Лакх от 10.11.18, 03:24:25
Чтобы одна и та же программа работала на 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 во втором питоне.
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: matb от 03.12.18, 08:24:22
Вират Лакх, плиз, подскажите какой питон рекомендуете использовать для 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

Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: Вират Лакх от 03.12.18, 08:42:06
Цитата: matb от 03.12.18, 08:24:22
Вират Лакх, плиз, подскажите какой питон рекомендуете использовать для 18 компаса?
Любую версию. Можно не заморачиваться и использовать идущий в комплекте питон.
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: matb от 03.12.18, 09:00:13
Спасибо.
http://softobase.com/ru/python
Версия: 3.7.1
от 29.10.2018
Размер: 30 Mb
тогда для 18 компаса начнем применять..
А в "Можно не заморачиваться и использовать идущий в комплекте питон." там какая версия?
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: Вират Лакх от 03.12.18, 10:51:31
Какие-то софтобазы... Берите у источника: https://www.python.org/downloads/release/python-371/
Вам еще это может быть нужно: https://github.com/mhammond/pywin32/releases
"там какая версия?" - говорят, что 3.2 вроде.
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: Вират Лакх от 13.12.18, 09:02:06
Дополнение к « Ответ #18 : 03.12.18, 13:51:31 »
Чтобы логически закончить установку питон с нуля для Компас, нужно знать ещё подключение к Компас.
При таком подключении (см. ссылку), как я понимаю, нет необходимости заниматься с библиотекой КОМПАС-МАКРО. http://forum.ascon.ru/index.php/topic,31309.msg257247.html#msg257247
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: IgorT от 02.01.19, 19:56:43
.
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: IgorT от 02.01.19, 20:10:44
del
Название: Re: Установка Python c нуля для Компас-3D
Отправлено: Вират Лакх от 06.01.19, 02:47:56
Цитата: Вират Лакх от 10.11.18, 03:24:25
Чтобы одна и та же программа работала на 2 и 3 питоне, можно в начале написать универсальный код...
Пишут, что вариант через reload(sys); sys.setdefaultencoding('utf8') не очень хороший.
Вот, оказывается, есть способ проще и лучше:

# -*- coding: utf-8 -*-
from __future__ import unicode_literals

1) Не нужно импортировать sys
2) Строка универсальна - в питоне 2.х приносит пользу, в питоне 3.х - вроде ничего не портит.
3) print с русским текстом можно писать без u перед кавычками.
4) Избавляет от необходимости encode('cp1251') при внесении данных в объекты спецификации как это было с reload(sys)
5) Но при работе с файлами в питоне 2.х все-таки может потребоваться encode, который в третьем питоне мешает.
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: Умка от 17.07.19, 06:52:58
Установили пробную Компас 18 с сайта Аскон на новый системный блок Windows 10, Компас-макро присутствует из 3 файлов, но нет питона. Вопрос какой питон установить и как его подключить правильно?
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: pr0100 от 17.07.19, 07:26:24
Цитата: Умка от 17.07.19, 06:52:58
Установили пробную Компас 18 с сайта Аскон на новый системный блок Windows 10, Компас-макро присутствует из 3 файлов, но нет питона. Вопрос какой питон установить и как его подключить правильно?
Скорее всего питон установился в папку в AppData
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: Volk62 от 07.09.19, 06:07:06
В 18 версии Питон почему то отсутствует. Пришлось ставить ручками
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: p3452 от 07.09.19, 06:39:43
Цитата: Volk62 от 07.09.19, 06:07:06
В 18 версии Питон почему то отсутствует. Пришлось ставить ручками

А в папке ProgramData смотрели?
C:\ProgramData\ASCON\KOMPAS-3D\18\Python 3
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: Volk62 от 14.09.19, 14:09:18
Вот там как раз и не смотрел. Смотрел в самом компасе и в пользователях в AppData
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: Вират Лакх от 14.09.19, 21:23:17
Если файлы .pyw и .pywc не запускается двойным кликом и через "Открыть с помощью...", то придется кое-что подправить в реестре. На примере python 2.7.

Должны существовать разделы со строковыми параметрами:

HKEY_CLASSES_ROOT\.pyw -> (По умолчанию) -> Python.NoConFile
HKEY_CLASSES_ROOT\Python.NoConFile\shell\open\command -> (По умолчанию) -> "C:\Python27\pythonw.exe" "%1"

HKEY_CLASSES_ROOT\.pywc -> (По умолчанию) -> pywc_auto_file
HKEY_CLASSES_ROOT\pywc_auto_file\shell\open\command -> (По умолчанию) -> "C:\Python27\pythonw.exe" "%1"

Если иконки у них неправильные, то должно быть вот так:

HKEY_CLASSES_ROOT\Python.NoConFile\DefaultIcon -> (По умолчанию) -> "C:\Python27\DLLs\py.ico"

HKEY_CLASSES_ROOT\pywc_auto_file\DefaultIcon -> (По умолчанию) -> "c:\Python27\DLLs\pyc.ico"

После установки иконок придется выйти из системы и войти обратно или перезагрузить компьютер.
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: Умка от 05.08.20, 13:50:40
K19W10 Python 3. Как запустить скрипт не открывая окно Python.
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: Наталья Забродина от 01.11.20, 08:56:23
Здравствуйте, так и не понятно из этой темы как вставить код программы написанной на Python в компас 3 d ???? С самого начала на понятном языке, пошаговая инструкция, спасибо, если кто поможет
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: Вират Лакх от 05.11.20, 05:02:02
Цитата: Наталья Забродина от 01.11.20, 08:56:23Здравствуйте, так и не понятно из этой темы как вставить код программы написанной на Python в компас 3 d ???? С самого начала на понятном языке, пошаговая инструкция, спасибо, если кто поможет
Код вставлять в компас не надо. Пошаговая инструкция:
0. Можно обновить питон, удалив идущий в комплекте с компасом и установив новый с сайта https://www.python.org/downloads/
При этом нужно ставить дополнение отсюда: https://github.com/mhammond/pywin32/releases
1. Определиться с редактором, где писать код, например мне нравится https://www.geany.org/
2. Написанный код запускать через python.exe для .py или pythonw.exe для .pyw, указав его как параметр в командной строке.
Или на кнопку типа Выполнить в среде разработки. Или просто двойным кликом по файлу с кодом.
3. Код должен запускать Компас или цепляться к запущенному типа того:
from win32com.client import Dispatch
iApplication = Dispatch('Kompas.Application.7')
Далее - всё, что от него требуется.
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: студент от 05.11.20, 08:44:50
Коллеги, подскажите. Вместе с компасом устанавливается пайтон 3.2.5, при чем портабельный, у меня для своих нужд установлен пайтон 3.8. Как заставить компас работать с установленным у меня пайтоном? Если ассоциирую файлы с пайтоном 3.8 перестают работать макросы.
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: Вират Лакх от 05.11.20, 08:48:20
Цитата: Студент от 05.11.20, 08:44:50Если ассоциирую файлы с пайтоном 3.8 перестают работать макросы.
Надо выяснить, почему перестают работать. Может быть для 3.8 вы не установили https://github.com/mhammond/pywin32/releases ?
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: студент от 05.11.20, 08:56:41
установлен
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: Умка от 05.11.20, 09:01:31
Аналогично. Стоит W10-К19 + Python-Portable 3.5.2.1 но файлы запустить не могу. Пришлось установить Python 2.6 как на прежней К13 и сейчас все скрипты работают корректно.
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: Вират Лакх от 05.11.20, 09:08:42
Цитата: Студент от 05.11.20, 08:56:41установлен
Тогда что выдает питон при запуске скрипта через отладчик или среду разработки?
Было что-то такое. Новые версии питона 3 по сравнению с ранними питонами 3 по-другому обрабатывают какую-то свою функцию.
Сейчас сходу не помню, что именно.
Цитата: Умка от 05.11.20, 09:01:31Аналогично. Стоит W10-К19 + Python-Portable 3.5.2.1 но файлы запустить не могу. Пришлось установить Python 2.6 как на прежней К13 и сейчас все скрипты работают корректно.
Может у вас не аналогично, а просто макросы были написаны для второго питона.
Можно писать код так, чтобы он работал на всех версиях питона, но это дополнительные трудозатраты.
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: студент от 05.11.20, 09:15:01
хм.... выдает "ModuleNotFoundError: No module named 'LDefin2D'"
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: Вират Лакх от 05.11.20, 10:21:37
Цитата: Студент от 05.11.20, 09:15:01хм.... выдает "ModuleNotFoundError: No module named 'LDefin2D'"
Это модуль от Компас-макро. Если вы его не используете (скорее всего), то уберите из кода. Там всякие MH аналогично.
Наоборот, если используете, то добавьте из компасного питона в свой питон по аналогичному пути или рядом со своим скриптом.
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: студент от 05.11.20, 11:15:31
Рядом с питоновским файлом лежит макро. Как в свой питон добавить? что то не понял
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: Вират Лакх от 05.11.20, 11:38:23
Цитата: Студент от 05.11.20, 11:15:31Рядом с питоновским файлом лежит макро.
А это вы о чем? Короче, удалите из кода import LDefin2D или просто LDefin2D, если в этой строке ещё что-то есть.
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: студент от 05.11.20, 15:08:03
Удаляю, но как-то не работает. Ладно, спасибо, поковыряюсь еще, возьмусь за что нить попроще, я еще не сильно в этом разбираюсь.
Название: Re: Установка Python c нуля для Компас-3D.
Отправлено: pr0100 от 14.07.21, 22:40:15
У многих новичков, кто только начинает вникать в азы программирования на python под КОМПАС-3D возникают проблемы с первичной настройкой самого python для работы с АПИ компаса.

В видеозаписи описана инструкция по первичной настройке внешнего установленного пайтона если их несколько в системе. И установки необходимых для работы библиотек.