Light-weight application for installing PINGMapper and associated packages. PINGInstaller is designed to install a conda environment from a yml specified as a URL or localy hosted yml.
Example yml file structure:
name: ping
channels:
- conda-forge
dependencies:
- python<3.13
- gdal
- numpy
- git
- pandas
- geopandas
- pyproj<3.7.1
- scikit-image
- joblib
- matplotlib
- rasterio
- h5py
- opencv
- pip
- pip:
- pingverter
- pingmapper
- pingwizard
- pinginstaller
- doodleverse_utils
- psutil
- tensorflow
- tf-keras
- transformers
- rsaThe special thing about PINGInstaller is that it will install the conda environment based on the conda prompt it is launched from. This enables end-users with multiple conda installations to choose the flavor of conda as needed.
Supported prompts include (but may not be limited to):
PINGInstaller is also compatible with projects in the Doodlevers.
Open (download, if not already available) the conda prompt you want to use (ex: On Windows 11 - Start --> All --> Anaconda (miniconda3) --> Anaconda Powershell Prompt).
Install PINGInstaller in the base environment with:
pip install pinginstallerThen install the environment from a web or locally hosted yml with:
python -m pinginstaller https://github.com/CameronBodine/PINGMapper/blob/main/conda/PINGMapper.ymlThat's it! Your environment is now ready to use.
If you want to update the environment, simply re-run the environment installation script with:
python -m pinginstaller https://github.com/CameronBodine/PINGMapper/blob/main/conda/PINGMapper.ymlTa-ta for now!
Problem: When updating via PINGWizard, you see:
remove_all: Access is denied.
Cause: In rare cases, file locking can prevent updates when the wizard is running from the environment being updated.
Solution: PINGWizard (v1.0.12+) automatically runs updates from the base environment to avoid this. If you still see this error:
- Update PINGWizard:
pip install pingwizard -U - Or manually run from base:
conda activate base && python -m pingwizard
Problem: When creating an environment, you see:
error libmamba Non-conda folder exists at prefix - aborting.
critical libmamba Non-conda folder exists at prefix - aborting.
Cause: A leftover directory exists at the environment location (e.g., Z:\miniforge3\envs\ping) that's not a valid conda environment. This can happen after an incomplete removal or failed installation.
Solution: Manually remove the directory and try again:
# Windows PowerShell
Remove-Item -Recurse -Force "Z:\miniforge3\envs\ping"
# Then retry installation
python -m pinginstaller# Linux/Mac
rm -rf ~/miniforge3/envs/ping
# Then retry installation
python -m pinginstallerProblem: Environment creation takes a very long time (>10 minutes).
Solutions:
-
Use mamba (much faster): Install mamba in your base environment:
conda install -n base mamba -y
PINGInstaller automatically detects and uses mamba when available.
-
Check your network connection: Slow downloads can cause delays.
-
Clear conda cache:
conda clean --all -y
Problem: Conda/mamba cannot find required packages or conflicts prevent solving.
Solutions:
-
Update conda/mamba:
conda update -n base conda -y # or if using mamba mamba update -n base mamba -y -
Check channel configuration: Ensure conda-forge is available:
conda config --show channels # Should include conda-forge -
Update all packages in base:
conda update --all -y
Problem: Installation appears stuck during the "Updating conda/mamba" step.
Solution: Press Ctrl+C to cancel, then run with quiet mode to skip housekeeping updates:
python -m pinginstaller <yml_url> -qOr skip housekeeping by commenting out the install_housekeeping() call temporarily.
Problem: PINGInstaller is using a different conda installation than expected.
Solution:
-
Verify which conda is active:
which conda # Linux/Mac where conda # Windows
-
Check CONDA_PREFIX:
echo $CONDA_PREFIX # Linux/Mac/PowerShell echo %CONDA_PREFIX% # Windows CMD
-
Activate the correct conda first, then run pinginstaller from that environment.
Problem: PINGInstaller uses conda even though mamba is installed.
Solution:
-
Verify mamba is in base environment:
conda activate base mamba --version
-
Reinstall mamba if needed:
conda install -n base mamba -y
-
Check output: PINGInstaller will print "Using mamba for faster installation" if detected.
Problem: Cannot write to conda directories.
Solutions:
- Windows: Run PowerShell or Command Prompt as Administrator
- Linux/Mac: Check directory ownership, or reinstall conda in user directory (not system-wide)
Problem: Packages installed but cannot be imported.
Solutions:
-
Activate the environment first:
conda activate ping python -c "import pingmapper" -
Verify environment location:
conda env list # Ensure 'ping' environment is listed -
Check package installation:
conda list | grep pingmapper
If you encounter issues not covered here:
- Check the GitHub Issues
- Enable debug mode for detailed output:
python -m pinginstaller <yml> --debug - Open a new issue with the full error output and your system details