Are you placing the food in with your hand or are you using feeding tongs? He might be associating you with the food since he may not be accustomed to your hands also handling him yet.
Personally, I do use a feeding tank and always have. It's just a small kritter keeper that I bought and has a paper towel lining the bottom. I do this because I use coconut fiber as a substrate and there are a lot of substrates that are bad if your ball python eats them. I've heard horror stories of ball pythons getting wood chips stuck in their mouth. (Ouch!). My ball python has never regurgitated his food and he's a plump healthy boy! He also has only turned up his nose at food once. (I found out if I don't wiggle his food, he doesn't want it. He eats frozen and won't touch it if it isn't wiggled. The time he wouldn't eat was after I first got him and didn't wiggle his food.)
I also like that he knows that the kritter keeper means eating. It means he knows that the tank opening or me being near it does not necessarily mean food so he never gets ready to eat when I open his tank.
It seems like your ball python is still very new. He could just be very scared. Like Armiyana said, hides are super important. If he doesn't have somewhere to hide, he might just be being super defensive out of fear. It could also be that he's hungry so make sure that he's eating the right size/amount for his weight!
Personally, to me this sounds like defensive striking as normally they don't, as far as I know, rely on sight to hunt, they rely on smell. So he's not smelling food when he's striking. To me it sounds like he might be a bit scared. Maybe if you post a picture of your enclosure, we can see if there's something that might be making him so defensive?
Hope this helps!