I say gun. You said she's worried about carrying a gun, but is this simply due to lack of familiarity? Maybe a range trip or two would change her mind.

A knife is good as a last line of defense, but if it were me, I'd like to have the threat stopped before it's within arm's reach of me.