Я создал собственный виджет "viewdicom" для Orange3 на основе учебника "Data Sampler".Его setup.py выглядит следующим образом
из setuptools import setup, find_packages
setup(
version="1.0.0",
name="viewdicom",
packages=find_packages(),
package_data={"viewdicom": ["icons/*.svg"]},
install_requires=["rtk"],
include_package_data=True,
classifiers=["Example :: Invalid"],
entry_points={"orange.widgets": "Radiomics = viewdicom"},
)
Я вытащил репозиторий Orange3 Git и создал для него virtualenv.Когда я устанавливаю виджет в это virtualenv, используя «pip install -e».а затем запустить сам Orange3, я правильно вижу виджет "viewdicom" в своей категории "Radiomics".
Все хорошо.Затем я пытаюсь собрать приложение Mac OSX из установки Orange3, используя следующий скрипт build.sh, который оборачивает скрипт build-macos-app.sh:
#!/bin/bash
rm -rf /Applications/Orange3.app
../orange3/scripts/macos/build-macos-app.sh --pip-arg={-e,/Users/ralph/dev/orange3,/Users/ralph/dev/rtk,/Users/ralph/dev/orange3-widgets/rtk/viewdicom,PyQt5} /Applications/Orange3.ap
Так что мой пользовательский виджет называется "viewdicom"и он использует библиотеку (мою) под названием "RTK".Я не уверен, что это правильный способ включения пользовательских библиотек и виджетов в сборку * .app, но без них я не вижу ничего в пакетах сайта контента * .app.
Если я собираюприложение, как это и проверить содержимое каталога site-packages внутри Orange3.app: /Applications/Orange3.app/Contents/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages
Я вижу следующее для "rtk":
пакет "rtk" структура каталогов site-packages
и следующее для "viewdicom"
пакет "viewdicom" структура каталогов site-packages
Кажется, они установлены внутри Orange3.app.Насколько я вижу, файлы "instal_files.txt" и "SOURCES.txt" содержат нужные исходные файлы.Файл "entry_points.txt" для "viewdicom" правильно содержит
[orange.widgets]
Radiomics = viewdicom
Я не уверен насчет библиотеки "rtk".Это не виджет Orange3 и не приложение.Я не знаю, нужна ли ему также точка входа.
Я не могу понять, почему встроенный Orange3.app правильно отображал бы категорию «Радиомикс», но не виджет «viewdicom».
Если у кого-то есть опыт работы со скриптом build-tacos-app.sh, я был бы благодарен за несколько советов.