Build: macOS - setiastro/setiastrosuitepro GitHub Wiki
The following has been tested/verified on: macOS 26.0.1 (Apple silicon) and macOS 15.6.1 (Intel)
- Homebrew is a macOS package manager that will be used to install required python version
- From Terminal window:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"- Close the terminal window and open a new one.
- Python 3.12
- Python is installed using homebrew commands (installed to /opt/homebrew/bin/python3.12 Apple silicon or /usr/local/bin/python3.12 Intel)
brew install [email protected]
- Install LLVM's OpenMP runtime library using Homebrew
brew install libomp
This is one of the simplest methods for installing SASPro. It is synchronized to the 'main' branch of the GitHub development repository. You won't be able to play with bleeding-edge development version using this install method.
- From terminal window, create python venv:
python3.12 -m venv ~/setiasuite-venv && echo 'export NUMBA_THREADING_LAYER=omp' >> ~/setiasuite-venv/bin/activate && echo 'export DYLD_LIBRARY_PATH="$(brew --prefix libomp)/lib:${DYLD_LIBRARY_PATH}"' >> ~/setiasuite-venv/bin/activate
- Activate python venv
source ~/setiasuite-venv/bin/activate && pip install --upgrade pip
- Special command only required for Intel Mac running MacOS Tahoe 26.x
python3.12 -m pip install --only-binary=:all: "llvmlite>=0.42,<0.43" "numba>=0.59"
- Install SASPro using pip
pip install imagecodecs setiastrosuitepro
- To start SASPro from terminal window (requires that venv already exists):
source ~/setiasuite-venv/bin/activate && setiastrosuitepro
- To update from the terminal window using pip:
source ~/setiasuite-venv/bin/activate && pip install --upgrade setiastrosuitepro
- In Terminal, copy/paste the following command as-is:
cat > ~/desktop/sas_run.command << 'EOF'
#!/bin/zsh
# Run the target script using a login zsh so your profile is loaded
# Replace the path if your home directory differs
/bin/zsh -l -c "source ~/setiasuite-venv/bin/activate && setiastrosuitepro"
# If you want Terminal to pause so you can read output, uncomment the following line:
# read -n 1 -s -p $'Press any key to close...\n'
EOF
- Make the shortcut executable
chmod +x ~/desktop/sas_run.command
- In Terminal, copy/paste the following command as-is:
cat > ~/desktop/sas_update.command << 'EOF'
#!/bin/zsh
# Run the target script using a login zsh so your profile is loaded
# Replace the path if your home directory differs
/bin/zsh -l -c "source ~/setiasuite-venv/bin/activate && pip install --upgrade setiastrosuitepro"
# If you want Terminal to pause so you can read output, uncomment the following line:
# read -n 1 -s -p $'Press any key to close...\n'
EOF
- Make the shortcut executable
chmod +x ~/desktop/sas_update.command
- Use git clone command to download SASPro source repository
- This only needs to be performed once.
cd ~
git clone https://github.com/setiastro/setiastrosuitepro.git
- For older versions of MacOS (like Sonoma 14.6.1) you may need to fully specify the git command path
cd ~
/usr/bin/git clone https://github.com/setiastro/setiastrosuitepro.git
- Setup the python virtual environment
cd ~/setiastrosuitepro
python3.12 -m venv venv
2a. Append to end of activate script (only needs to be done once after creating venv)
echo 'export NUMBA_THREADING_LAYER=omp' >> venv/bin/activate
echo 'export DYLD_LIBRARY_PATH="$(brew --prefix libomp)/lib:${DYLD_LIBRARY_PATH}"' >> venv/bin/activate
- Activate the python virtual environment
. venv/bin/activate
- Install required dependencies using pip
./venv/bin/pip3 install -e .
- Run SetiAstroSuite Pro from source
./venv/bin/python3 setiastrosuitepro.py
The script has already been created and is included in the repository - update_saspro.sh
- In Terminal, cd into your setiastrosuitepro directory
cd ~/setiastrosuitepro
- Execute the update_saspro.sh script - substitute main or dev for .
./update_saspro.sh <branch>
- In Terminal, copy/paste the following command as-is:
cat > ~/desktop/sas_update.command << 'EOF'
#!/bin/zsh
# Run the target script using a login zsh so your profile is loaded
# Replace the path if your home directory differs
/bin/zsh -l -c "~/setiastrosuitepro/update_saspro.sh main"
# If you want Terminal to pause so you can read output, uncomment the following line:
# read -n 1 -s -p $'Press any key to close...\n'
EOF
- Make the shortcut executable
chmod +x ~/desktop/sas_update.command
- In Terminal, cd into your setiastrosuitepro directory
cd ~/setiastrosuitepro
- Create a script to run SASPro called run_saspro.sh
cat > run_saspro.sh << 'EOF'
#!/bin/zsh
# Get the directory where this script is located
SCRIPT_DIR="${0:A:h}"
ORIGINAL_DIR=$(pwd)
# Change to script directory
cd "$SCRIPT_DIR"
echo "📁 Working directory: $(pwd)"
# Check for virtual environment
if [[ ! -f "venv/bin/activate" ]]; then
echo ""
echo "❌ Missing virtual environment: \"venv\""
echo " Create it in this folder and install deps, then re-run:"
echo " python3.12 -m venv venv"
echo " source venv/bin/activate"
echo " ./venv/bin/pip3 install --upgrade pip"
echo " ./venv/bin/pip3 install -e ."
echo ""
read "?Press Enter to continue..."
exit 1
fi
# Activate virtual environment
echo "🔧 Activating virtual environment..."
source "venv/bin/activate"
echo ""
echo "🐍 Python being used:"
venv/bin/python3 --version
which python3
echo ""
echo "🚀 Running SETI Astro Suite Pro..."
venv/bin/python3 setiastrosuitepro.py
RC=$?
echo ""
echo "🏁 Process exited with code $RC."
echo ""
# Deactivate virtual environment
deactivate 2>/dev/null || true
read "?Press Enter to continue..."
# Return to original directory
cd "$ORIGINAL_DIR"
exit $RC
EOF- Make the update.sh script executable
chmod +x run_saspro.sh
- In Terminal, cd into your setiastrosuitepro directory
cd ~/setiastrosuitepro
- Execute the run_saspro.sh script.
./run_saspro.sh
- In Terminal, copy/paste the following command as-is:
cat > ~/desktop/sas_run.command << 'EOF'
#!/bin/zsh
# Run the target script using a login zsh so your profile is loaded
# Replace the path if your home directory differs
/bin/zsh -l -c "~/setiastrosuitepro/run_saspro.sh"
# If you want Terminal to pause so you can read output, uncomment the following line:
# read -n 1 -s -p $'Press any key to close...\n'
EOF
- Make the shortcut executable
chmod +x ~/desktop/sas_run.command
The following has been tested/verified on: macOS 26.0.1 (Apple silicon)
This link will download the starnet zip archive - StarNet2T
- Extract and move the folder to a location out of the Downloads folder (Terminal command below copies to your home folder)
cp -r ~/Downloads/StarNet2T_MacOS ~
- Create the library folder and run install
sudo mkdir /usr/local/lib
cd ~/StarNet2T_MacOS
sudo ./install.sh
- In SASPro Settings menu, select Preferences from pulldown
- Click on the "Browse" button next to the "StarNet executable:" setting
- Browse to the starnet2 executable found in your StarNet2T_MacOS folder and select it
-
Not everyone needs to do this - only if you limitations to the number of open files during stacking
-
The default soft file open limit is 256. If you think you might exceed this, perform the steps below
-
A reboot will be needed to apply the changes
-
Error reported from SAS Pro - "Failed to open images (memmap): [Errno 24] Too many open files."
-
Create limit.maxfiles.plist file
sudo tee /Library/LaunchDaemons/limit.maxfiles.plist > /dev/null << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple/DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>limit.maxfiles</string>
<key>ProgramArguments</key>
<array>
<string>launchctl</string>
<string>limit</string>
<string>maxfiles</string>
<string>8192</string>
<string>81920</string>
</array>
<key>RunAtLoad</key>
<true />
<key>ServiceIPC</key>
<false />
</dict>
</plist>
EOF
- Type the following commands into terminal
sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist
sudo chmod 0644 /Library/LaunchDaemons/limit.maxfiles.plist
sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plist
- Reboot your machine and test the file limits settings using commands below (8192 for soft limit and 81920 for hard limit)
ulimit -Sn
ulimit -Hn