Skip to main content

PINGInstaller

PyPI - Version

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
      - rsa

The 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.

Installation & Usage

Step 1

Open (download, if not already available) the conda prompt you want to use (ex: On Windows 11 - Start --> All --> Anaconda (miniconda3) --> Anaconda Powershell Prompt).

Step 2

Install PINGInstaller in the base environment with:

pip install pinginstaller

Step 3

Then install the environment from a web or locally hosted yml with:

python -m pinginstaller https://github.com/CameronBodine/PINGMapper/blob/main/conda/PINGMapper.yml

That'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.yml

Ta-ta for now!

Troubleshooting

"Access is denied" When Updating from Wizard

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:

  1. Update PINGWizard: pip install pingwizard -U
  2. Or manually run from base: conda activate base && python -m pingwizard

"Non-conda folder exists at prefix" Error

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 pinginstaller

Slow Environment Solving

Problem: Environment creation takes a very long time (>10 minutes).

Solutions:

  1. Use mamba (much faster): Install mamba in your base environment:

    conda install -n base mamba -y
    

    PINGInstaller automatically detects and uses mamba when available.

  2. Check your network connection: Slow downloads can cause delays.

  3. Clear conda cache:

    conda clean --all -y
    

"Package Not Found" or Solver Errors

Problem: Conda/mamba cannot find required packages or conflicts prevent solving.

Solutions:

  1. Update conda/mamba:

    conda update -n base conda -y
    # or if using mamba
    mamba update -n base mamba -y
    
  2. Check channel configuration: Ensure conda-forge is available:

    conda config --show channels
    # Should include conda-forge
    
  3. Update all packages in base:

    conda update --all -y
    

Installation Hangs During Housekeeping

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> -q

Or skip housekeeping by commenting out the install_housekeeping() call temporarily.

Wrong Conda Installation Being Used

Problem: PINGInstaller is using a different conda installation than expected.

Solution:

  1. Verify which conda is active:

    which conda  # Linux/Mac
    where conda  # Windows
    
  2. Check CONDA_PREFIX:

    echo $CONDA_PREFIX  # Linux/Mac/PowerShell
    echo %CONDA_PREFIX%  # Windows CMD
    
  3. Activate the correct conda first, then run pinginstaller from that environment.

Mamba Not Being Detected

Problem: PINGInstaller uses conda even though mamba is installed.

Solution:

  1. Verify mamba is in base environment:

    conda activate base
    mamba --version
    
  2. Reinstall mamba if needed:

    conda install -n base mamba -y
    
  3. Check output: PINGInstaller will print "Using mamba for faster installation" if detected.

Permission Denied Errors

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)

Import Errors After Installation

Problem: Packages installed but cannot be imported.

Solutions:

  1. Activate the environment first:

    conda activate ping
    python -c "import pingmapper"
    
  2. Verify environment location:

    conda env list
    # Ensure 'ping' environment is listed
    
  3. Check package installation:

    conda list | grep pingmapper
    

Getting Help

If you encounter issues not covered here:

  1. Check the GitHub Issues
  2. Enable debug mode for detailed output: python -m pinginstaller <yml> --debug
  3. Open a new issue with the full error output and your system details

Metadata

Release files for pinginstaller 2.1.14

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pinginstaller 2.1.14
File Size Uploaded
pinginstaller-2.1.14.tar.gz 16.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pinginstaller 2.1.14
File Interpreter ABI Platform
pinginstaller-2.1.14-py3-none-any.whl Python 3 none any Details

Total release size: 31.1 kB

Release files / pinginstaller-2.1.14.tar.gz

Download URL pinginstaller-2.1.14.tar.gz
Size 16.0 kB
Tags Source
SHA-256 checksum
How to use checksums
01d31ca50444be5b820eb8bcdda4246f641a81024e7f1f7e24c89ac12d6b4e15
BLAKE2b-256 checksum
How to use checksums
02c682ac1bcf7a36fff59aee17652d9e9231345eb30ab13c329100358942a808
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / pinginstaller-2.1.14-py3-none-any.whl

Download URL pinginstaller-2.1.14-py3-none-any.whl
Size 15.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0c664974aa2f5f6585f7e99fecede79bbc2a5dc67abb7958250d2ba31af4f2ee
BLAKE2b-256 checksum
How to use checksums
51ad2ded84a8712effc4c44f36e910cb56bb3a055985ea2366b71968c2106a9d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release history Release notifications | RSS feed

This release

2.1.14 This release

2 release files

2.1.13

2 release files

2.1.12

2 release files

2.1.11

2 release files

2.1.10

2 release files

2.1.9

2 release files

2.1.8

2 release files

2.1.7

2 release files

2.1.6

2 release files

2.1.5

2 release files

2.1.4

2 release files

2.1.3

2 release files

2.1.2

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.0.19

2 release files

1.0.18

2 release files

1.0.17

2 release files

1.0.14

2 release files

1.0.13

2 release files

1.0.12

2 release files

1.0.11

2 release files

1.0.10

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page