Figured out the solution. For anyone else with this situation:
# main.py
import sys
import os
# Path to project/
path1 = os.path.abspath(os.path.join(os.path.dirname(__file__), '../'))
# Path to project/public_app
path2 = os.path.abspath(os.path.join(os.path.dirname(__file__), '../', 'public_app'))
# Add both to path
for path in [path1,path2]:
sys.path.append(path)
from public_app.dir.subdir.functions import *
from public_app.dir.subdir.utils import *