CHTC has instructions for making a tarball of python packages (e.g. numpy, pyuvdata, etc). This tarball is then either transferred to the execution host if it is under 100MB or downloaded from their web proxy server (with prior authorization) if 100MB or over. This, coupled with a python installation via tarball, may be enough for execution hosts to run HERA calibration jobs.
Here is a sample set of instructions to build a python-packages tarball
cat > build.sub <<EOM# Python build fileuniverse = vanillalog = interactive.log# Choose a version of Python from the table abovetransfer_input_files = http://proxy.chtc.wisc.edu/SQUID/chtc/python37.tar.gz+IsBuildJob = truerequirements = (OpSysMajorVer =?= 7)request_cpus = 1request_memory = 2GBrequest_disk = 2GBqueueEOMcondor_submit -i build.subtar xfz python37.tar.gzexport PATH=${PWD}/python/bin:${PATH}export PYTHONPATH=${PWD}/hera_calibration_packagesmkdir -p ${PYTHONPATH}python3 -m pip install --target ${PYTHONPATH} numpy scipy astropy h5py toml six matplotlib scikit-learn cached-propertypython3 -m pip install --target ${PYTHONPATH} healpypython3 -m pip install --target ${PYTHONPATH} pyuvdatapython3 -m pip install --target ${PYTHONPATH} aipy# trying more packages. This seems to workpython3 -m pip install --target ${PYTHONPATH} git+https://github.com/HERA-Team/pyuvdata.gitpython3 -m pip install --target ${PYTHONPATH} git+https://github.com/HERA-Team/linsolve.gitpython3 -m pip install --target ${PYTHONPATH} git+https://github.com/HERA-Team/hera_qm.gitpython3 -m pip install --target ${PYTHONPATH} git+https://github.com/HERA-Team/uvtools.gitpython3 -m pip install --target ${PYTHONPATH} git+https://github.com/HERA-Team/hera_cal.git# plaplant said "hera_opm is only used for setting up makeflow. so the# execution host itself does not need ittar cfz hera_calibration_packages.tar.gz hera_calibration_packagesexit