Building the Conda package
The overall challenge with installing MapReader is that it some of its dependencies are only available on PyPI, whilst others are only available on conda-forge.
The solution is to create and build Conda packages that wrap each of the packages that are only available on PyPI, into a local Conda channel. This local Conda channel is then used to build the MapReader package. The following directory structure is used:
conda
├── meta.yaml # <-- Conda recipe for MapReader
├── parhugin
│ └── conda
│ └── meta.yaml # <-- Conda recipe for parhugin
└── ipyannotate
└── conda
├── meta.yaml # <-- Conda recipe for ipyannotate
└── setup.py # <-- setup script for ipyannotate (needed because the source on PyPI does not include setup.py)
The minimal build process is as follows:
mkdir /path/to/local/conda/channel
conda index /path/to/local/conda/channel
conda-build ./conda/parhugin/conda --output-folder /path/to/local/conda/channel
conda-build ./conda/ipyannotate/conda --output-folder /path/to/local/conda/channel
conda-build -c file:///path/to/local/conda/channel -conda-forge ./conda