Страница 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 (77.25 КБ) 2529 просмотров
галочку "Inherit global site-packages" переименовали в "Inherit packeges from base interpreter"
Плохая новость в том, что эта галочка похоже перестала работать и это видимо баг в PyCharm.
Чтобы исправить ситуацию откройте файл pyvenv.cfg в созданной папке с виртуальным окружением и измените:
на
После чего перезапустите 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
соответственно:
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
Матвеич
Благодарю Вас Александр! Все получилось.