ANP-Granular / ParticleTracking

Library and GUI for tracking (rod-like) particles on camera images in 2D and 3D
https://particletracking.readthedocs.io/en/latest/
GNU General Public License v3.0
2 stars 2 forks source link

Making RodTracker installable #56

Closed a-niem closed 2 years ago

a-niem commented 2 years ago

Goal/Rational

There have been multiple occasions where users had trouble manually installing all necessary libraries for the RodTracker to work without bugs/failures. This problem arose especially when a new version was introduces, that changed these requirements. This update aims to address this issue by providing a way to easily install the software or to ship a stand-alone version without the need for installation.

Changes

This update restructures the file tree of the RodTracker GUI written in python. The source code and all resource files necessary to run the RodTracker GUI were moved inside a src folder. The main goal for this is to provide a better structure to make the RodTracker installable as a package, i.e. automatically installable using pip. This new structure also enables easier writing of unit tests in future updates.

New features

The whole RodTracker GUI can now be bundled into a single executable or a single directory structure with an executable inside. Both solutions transform the program into a stand-alone solution, that does not require any further environment setup by the user, i.e. it is independent of the installed python version and libraries on the users computer.

A second improvement introduced here, is the installability of the RodTracker as a python package using pip. This adds the benefit of not having to manually install all requirements. It furthermore allowed to register a script, such that the RodTracker software is runnable directly from the console:

ARBITRARY/PATH$ RodTracker

With this system in place, it is also possible to create a *.whl file that can then easily be distributed and possibly also published on PyPI later. Another feature introduced here is the separation of user and developer requirements, where the user only installs requirements necessary for running the RodTracker GUI but not those additionally necessary for developer activities.

Please refer to the README.md for further details on all the mentioned points.

Known issue

The README file is not accessible when the program was installed from a *.whl file.