software exiting without error or outfile generated on intel Apple iMac
Closed this issue · 5 comments
Hello Peter,
I have been referred here to ask you with a problem I am having running EcoAssist on my 2013 intel iMac running OS X Catalina. I installed the software and it seemed to install fine, but strangely, when I try and run it on images, it exits a few seconds after showing the message that it is processing. If I process movies, it will process them all but in the end also simply exits without the outfile being produced.
However, the post processing works fine. I am running Megadetector on a linux cluster and imported the .json file into the folder with the images back on my Mac. Then post-processing produces the expected results. The post processing works, but the detection does not.
Could you advise what I have done wrong?
Below is the code of the command file and it looks like there is an error with the $LOCATION_ECOASSIST_FILES files maybe?
#!/usr/bin/env bash
OSX and Linux commands to open the EcoAssist application https://github.com/PetervanLunteren/EcoAssist
Peter van Lunteren, 9 Apr 2024 (latest edit)
check the OS and set var
if [ "$(uname)" == "Darwin" ]; then
echo "This is an OSX computer..."
if [[ $(sysctl -n machdep.cpu.brand_string) =~ "Apple" ]]; then
echo " ...with an Apple Silicon processor."
PLATFORM="Apple Silicon Mac"
else
echo " ...with an Intel processor."
PLATFORM="Intel Mac"
fi
elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
echo "This is a Linux computer."
PLATFORM="Linux"
fi
set location var
if [ "$PLATFORM" = "Apple Silicon Mac" ] || [ "$PLATFORM" = "Intel Mac" ]; then
LOCATION_ECOASSIST_FILES="/Applications/.EcoAssist_files"
elif [ "$PLATFORM" = "Linux" ]; then
LOCATION_ECOASSIST_FILES="$HOME/.EcoAssist_files"
fi
set variables
CONDA_DIR="${LOCATION_ECOASSIST_FILES}/miniforge"
ECOASSISTCONDAENV="${CONDA_DIR}/envs/ecoassistcondaenv-base"
PIP="${ECOASSISTCONDAENV}/bin/pip"
HOMEBREW_DIR="/opt/homebrew"
log output to logfiles
exec 1> $LOCATION_ECOASSIST_FILES/EcoAssist/logfiles/stdout.txt
exec 2> $LOCATION_ECOASSIST_FILES/EcoAssist/logfiles/stderr.txt
timestamp and log the start
START_DATE=date
echo "Starting at: $START_DATE"
echo ""
log system information
UNAME_A=uname -a
if [ "$PLATFORM" = "Apple Silicon Mac" ] || [ "$PLATFORM" = "Intel Mac" ]; then
MACHINE_INFO=system_profiler SPSoftwareDataType SPHardwareDataType SPMemoryDataType SPStorageDataType
fi
FILE_SIZES_DEPTH_0=du -sh $LOCATION_ECOASSIST_FILES
FILE_SIZES_DEPTH_1=du -sh $LOCATION_ECOASSIST_FILES/*
FILE_SIZES_DEPTH_2=du -sh $LOCATION_ECOASSIST_FILES/*/*
echo "uname -a:"
echo ""
echo "$UNAME_A"
echo ""
if [ "$PLATFORM" = "Apple Silicon Mac" ] || [ "$PLATFORM" = "Intel Mac" ]; then
echo "System information:"
echo ""
echo "$MACHINE_INFO"
echo ""
fi
echo "File sizes with depth 0:"
echo ""
echo "$FILE_SIZES_DEPTH_0"
echo ""
echo "File sizes with depth 1:"
echo ""
echo "$FILE_SIZES_DEPTH_1"
echo ""
echo "File sizes with depth 2:"
echo ""
echo "$FILE_SIZES_DEPTH_2"
echo ""
change directory
cd $LOCATION_ECOASSIST_FILES || { echo "Could not change directory to EcoAssist_files. Command could not be run. Did you change the name or folder structure since installing EcoAssist?"; exit 1; }
activate conda env
source "${LOCATION_ECOASSIST_FILES}/miniforge/etc/profile.d/conda.sh"
source "${LOCATION_ECOASSIST_FILES}/miniforge/bin/activate"
export PATH="${CONDA_DIR}/bin":$PATH
conda activate $ECOASSISTCONDAENV
path to python exe
PATH_TO_PYTHON="${ECOASSISTCONDAENV}/bin/"
echo "Path to python: $PATH_TO_PYTHON"
echo ""
add to PYTHONPATH
export PYTHONPATH="$PYTHONPATH:$PATH_TO_PYTHON:$PWD/cameratraps:$PWD/ai4eutils:$PWD/yolov5:$PWD/EcoAssist"
echo "PYHTONPATH=$PYTHONPATH"
echo ""
add to PATH
export PATH="$PATH_TO_PYTHON:/usr/bin/:$PATH"
echo "PATH=$PATH"
echo ""
version of python exe
PYVERSION=python -V
echo "python version: $PYVERSION"
echo ""
location of python exe
PYLOCATION=which python
echo "python location: $PYLOCATION"
echo ""
run script
"${PATH_TO_PYTHON}/python" EcoAssist/EcoAssist_GUI.py
timestamp and log the end
Hi Tina, it sounds like the part of EcoAssist that runs MegaDetector is not functioning properly. That probably has to do with the fact that, as of January 2024, support for Intel-based Macs has been deprecated. While the software may still function on Intel Macs, optimal performance cannot be guaranteed, and unexpected behavior may occur.
If you're only running EcoAssist for MegaDetector and not for a classification model, you can also install an old version. That will probably still work on Intel macs. In the FAQ, under "What happened to the train feature?" you can find instructions on how to install EcoAssist v4.3.
Do you know when you downloaded the version that did work? I'll prepare a special install.command
to get that specific version back.
since it never really worked fully (i.e. all I could do is postprocessing) and I have now set everything up on my cluster I am going to use the command line version for now. Until I eventually have to get a new computer. This issue comes up more and more with my intel Mac....Thanks or you help!
No problem :)