Страница 1 из 15

Плагины

Добавлено: 09 янв 2024, 11:59
Матвеич
Милостивые Государи !

как В PyCharm подключить библиотеку axipy.

При запуске выдает сообщение

File "C:\Аксиома\Proba\pythonProject2\main.py", line 15, in <module>
import axipy
ModuleNotFoundError: No module named 'axipy'

при создании проекта нет режима
• Требуется установить галочку Inherit global site-packages, чтобы Python смог
обнаружить axipy;

Примите мои уверения в почтении

Re: Плагины

Добавлено: 09 янв 2024, 12:35
Матвеич
Благодарю Вас за интерес!

Проблему решил.

Re: Плагины

Добавлено: 09 янв 2024, 13:14
Александр
Вы делаете так как описано на https://axioma-gis.ru/axipy/dev-guide/5.1/user_guide/development/pycharm_windows.html
В PyCharm интерфейс несколько поменялся и теперь окно создания проекта выглядит так:
img.png
img.png (77.25 КБ) 2339 просмотров
галочку "Inherit global site-packages" переименовали в "Inherit packeges from base interpreter"

Плохая новость в том, что эта галочка похоже перестала работать и это видимо баг в PyCharm.
Чтобы исправить ситуацию откройте файл pyvenv.cfg в созданной папке с виртуальным окружением и измените:

Код: Выделить всё

include-system-site-packages = false
на

Код: Выделить всё

include-system-site-packages = true
После чего перезапустите PyCharm

Re: Плагины

Добавлено: 10 янв 2024, 11:18
Матвеич
Благодарю Вас Александр !
Я только приступил к трансляции ПО MapTopik , написанной на MapBasic Mapinfo , для ГИС Аксиома 5.

Re: Плагины

Добавлено: 10 янв 2024, 11:23
Матвеич
Вопросов будет ,к сожалению , еще много. Заранее приношу свои извинения. с API в Phyton только знакомлюсь.

Re: Плагины

Добавлено: 12 янв 2024, 12:35
Матвеич
Отсутствует модуль QtWidgets'



Тестовый пример из axipy-dev-guide-5.1.pdf

Список 3: Создание обработчика для взаимодействия
с панелью активного инструмента.

service = ActiveToolPanel()
# Любой пользовательский графический элемент
widget = QWidget()
# Создаём обработчик для панели активного инструмента через который
# будем управлять панелью.
tool_panel = service.make_acceptable(
title="Мой инструмент",
observer_id=DefaultKeys.SelectionEditable,
widget=widget)
# Подписываемся на сигнал отправляемый после нажатия на кнопку "Применить" в панели

работа в PyCharm 2023.3.2 (Community Edition)
=======================================
from QtWidgets import QWidget
from axipy import ActionButton, Position, tr, init_axioma, mainwindow, ActiveToolPanel, DefaultKeys

service = ActiveToolPanel()
# Любой пользовательский графический элемент
widget = QWidget()

# Создаём обработчик для панели активного инструмента через который
# будем управлять панелью.
tool_panel = service.make_acceptable(
title="Мой инструмент",
observer_id=DefaultKeys.SelectionEditable,
widget=widget)

# Подписываемся на сигнал отправляемый после нажатия на кнопку "Применить" в панели
tool_panel.accepted.connect(lambda: print("Применяем изменения"))

button = ActionButton("Простое действие", on_click=lambda: print("triggered"))
position = Position(tr("Основные"), tr("Команды"))
position.add(button)

# Инициализация ядра
app = init_axioma()
# Создание и отображение главного окна Аксиомы
mainwindow.show()
# Запуск основного цикла приложения
app.exec_()
===========================================================

' результат выполнения

"C:\Program Files\Axioma v5\bin\python\python.exe" C:\Аксиома\Proba\pythonProject8\main.py
Unhandled Python Exception:
Traceback (most recent call last):
File "C:\Аксиома\Proba\pythonProject8\main.py", line 1, in <module>
from QtWidgets import QWidget
ModuleNotFoundError: No module named 'QtWidgets'

Process finished with exit code 1

Re: Плагины

Добавлено: 12 янв 2024, 14:30
Александр
модуль PySide2.QtWidgets
соответственно:

Код: Выделить всё

from PySide2.QtWidgets import QWidget

Re: Плагины

Добавлено: 15 янв 2024, 09:02
Матвеич
Александр !

запустил исправленный пример
from PySide2.QtWidgets import QWidget
from axipy import ActiveToolPanel, DefaultKeys, init_axioma, mainwindow

service = ActiveToolPanel()
# Любой пользовательский графический элемент
widget = QWidget()

# Создаём обработчик для панели активного инструмента через который
# будем управлять панелью.
tool_panel = service.make_acceptable(
title="Мой инструмент",
observer_id=DefaultKeys.SelectionEditable,
widget=widget)

# Подписываемся на сигнал отправляемый после нажатия на кнопку "Применить" в панели
tool_panel.accepted.connect(lambda: print("Применяем изменения"))

# Инициализация ядра
app = init_axioma()
# Создание и отображение главного окна Аксиомы
mainwindow.show()
# Запуск основного цикла приложения
app.exec_()

****************************************
выдано сообщение
Process finished with exit code -1073740286 (0xC0000602)
Что опять не так


Запускал пример из раздела создание приложений - работает безупречно

Re: Плагины

Добавлено: 16 янв 2024, 11:36
Александр
Для использования axipy вне Аксиомы необходимо выполнить инициализацию Аксиомы. Для этого следует вызвать метод init_axioma() перед вызовом остальных методов axipy.
В Вашем случае требуется переместить init_axioma сразу после импортов.

Re: Плагины

Добавлено: 16 янв 2024, 11:52
Матвеич
Благодарю Вас Александр! Все получилось.