Проблемы с созданием пакета Python ⇐ Python
-
Anonymous
Проблемы с созданием пакета Python
Я создаю пакет Python со следующей структурой:
VisionPy/ │ __init__.py │ main.py │ плагин_интерфейс.py │ README.md │ ├── контроллеры/ │ ├── __init__.py │ ├── imagecontroller.py │ ├── томконтроллер.py │ ├── модели/ │ ├── __init__.py │ ├── imagemodel.py │ ├── томмодель.py │ ├── плагины/ │ ├── CScan/ │ │ ├── __init__.py │ │ ├── NDEToolkit.py │ │ ├── плагин.py │ │ ├── требования.txt │ ├── __init__.py │ ├── ui/ │ ├── просмотров/ │ │ ├── __init__.py │ │ ├── imageview.py │ │ ├── label.py │ │ ├── mainview.py │ │ ├── томview.py │ ├── __init__.py │ ├── утилиты/ ├── __init__.py ├── прогресс_окно.py Моя проблема в том, что это должно быть позже скомпилировано и выполнено таким образом, чтобы я мог создавать плагины, как CScan. Текущая проблема, с которой я столкнулся, заключается в том, что я не могу импортировать NDEToolkit из плагина.py, несмотря на то, что они находятся в одной папке. Это проблема, потому что я хочу создать интерфейс плагина, к которому будет легкий доступ даже для людей, которые мало что знают о программировании, а добавление папок к системному пути не кажется лучшим подходом для достижения этой цели. Кроме того, я хочу иметь возможность скомпилировать проект с помощью pyinstaller или какого-либо аналогичного пакета и упростить вставку папки в плагины, которая содержит как минимум плагин.py и требования.txt, и именно так работает мой интерфейс. Я не знаю, действительно ли мне нужны все эти файлы init.py, поскольку я не планирую делать все это в виде пакета, поскольку это приложение с графическим интерфейсом, разработанное с использованием PyQt5 и main.py выглядит так:
# main.py импортировать систему из PyQt5.QtWidgets импортирует QApplication из контроллеров.imagecontroller импортировать ImageController из контроллеров.volumecontroller импортировать VolumeController из ui.views.mainview импортировать MainView защита основной(): приложение = QApplication(sys.argv) # Создаём главный вид main_view = MainView() # Создайте контроллеры и передайте им main_view image_controller = ImageController (main_view) Volume_controller = VolumeController (main_view) # Установите контроллеры в главном представлении main_view.set_image_controller(image_controller) main_view.set_volume_controller(volume_controller) # Показать основной вид main_view.show() sys.exit(app.exec_()) если __name__ == '__main__': основной() Я организовал проект следующим образом, думая о шаблоне MVC, но любая помощь или изменения, которые мне могут понадобиться, приветствуются. Заранее благодарим всех, кто внесёт вклад!
Я создаю пакет Python со следующей структурой:
VisionPy/ │ __init__.py │ main.py │ плагин_интерфейс.py │ README.md │ ├── контроллеры/ │ ├── __init__.py │ ├── imagecontroller.py │ ├── томконтроллер.py │ ├── модели/ │ ├── __init__.py │ ├── imagemodel.py │ ├── томмодель.py │ ├── плагины/ │ ├── CScan/ │ │ ├── __init__.py │ │ ├── NDEToolkit.py │ │ ├── плагин.py │ │ ├── требования.txt │ ├── __init__.py │ ├── ui/ │ ├── просмотров/ │ │ ├── __init__.py │ │ ├── imageview.py │ │ ├── label.py │ │ ├── mainview.py │ │ ├── томview.py │ ├── __init__.py │ ├── утилиты/ ├── __init__.py ├── прогресс_окно.py Моя проблема в том, что это должно быть позже скомпилировано и выполнено таким образом, чтобы я мог создавать плагины, как CScan. Текущая проблема, с которой я столкнулся, заключается в том, что я не могу импортировать NDEToolkit из плагина.py, несмотря на то, что они находятся в одной папке. Это проблема, потому что я хочу создать интерфейс плагина, к которому будет легкий доступ даже для людей, которые мало что знают о программировании, а добавление папок к системному пути не кажется лучшим подходом для достижения этой цели. Кроме того, я хочу иметь возможность скомпилировать проект с помощью pyinstaller или какого-либо аналогичного пакета и упростить вставку папки в плагины, которая содержит как минимум плагин.py и требования.txt, и именно так работает мой интерфейс. Я не знаю, действительно ли мне нужны все эти файлы init.py, поскольку я не планирую делать все это в виде пакета, поскольку это приложение с графическим интерфейсом, разработанное с использованием PyQt5 и main.py выглядит так:
# main.py импортировать систему из PyQt5.QtWidgets импортирует QApplication из контроллеров.imagecontroller импортировать ImageController из контроллеров.volumecontroller импортировать VolumeController из ui.views.mainview импортировать MainView защита основной(): приложение = QApplication(sys.argv) # Создаём главный вид main_view = MainView() # Создайте контроллеры и передайте им main_view image_controller = ImageController (main_view) Volume_controller = VolumeController (main_view) # Установите контроллеры в главном представлении main_view.set_image_controller(image_controller) main_view.set_volume_controller(volume_controller) # Показать основной вид main_view.show() sys.exit(app.exec_()) если __name__ == '__main__': основной() Я организовал проект следующим образом, думая о шаблоне MVC, но любая помощь или изменения, которые мне могут понадобиться, приветствуются. Заранее благодарим всех, кто внесёт вклад!
Мобильная версия