The class played doesn’t matter, and arguing about it only hurts your position
This situation really, really wouldn’t be any better if she was playing a sorcerer. If she ignores her prepared spells, why wouldn’t she also ignore her known spells?
You imagine that it will be easier for you to keep a sorcerer in line because it will be easier for you to keep track of what the character can or cannot do. But, quite simply, you’re wrong about that; this isn’t about being right or wrong. She won’t care that she’s wrong, or that you know it. You don’t say that she claimed to have prepared things she hadn’t; it doesn’t sound like she even lied about it. She just showed up with nothing prepared and just cast things regardless. It sounds like she just didn’t care that wizards are supposed to prepare spells, and didn’t care that the DM wanted her to abide by that rule, and just did what she wanted anyway. I see no reason to expect that she will act any differently with any other class, and I see no reason why you are any more likely to convince her to obey any other class’s rules.
And trying to enforce a special rule particular to her—to ban her from a particular class—is rather unfair. By doing that, you weaken your position because you are no longer being fair to all players. She may deserve it, but the rest of your group doesn’t seem to think so since they still want her in the game.
Communication and getting on the same page
But this isn’t really about the class she plays, it’s about the fact that she and you are not on the same page with respect to what you want from the game.
You want the game, more-or-less, as described in the books. You want spell selection to matter, for players to be challenged by their choices and rewarded for choosing well. That’s fine, more than fine even, since that is what the books describe as Dungeons & Dragons and is therefore what most people expect when they agree to play Dungeons & Dragons. I share your preference.
But that’s not the game she wants to play. Really, the game itself doesn’t even sound important to her—it sounds far more as though what is important to her is socializing with the group. She doesn’t want to deal with the fiddly details of the game, she (most likely, in my impression) wants to just play with the group and enjoy the social activity and have fun with a shared story. Maybe she wants the spotlight, the opportunity to be awesome and cool and win the admiration of her peers by saving the day with the right spell. Maybe she just doesn’t care and can’t be bothered to deal with preparing. Considering your certainty that she would drop out even if she got her way, I’m thinking disengagement is far more likely than spotlight-stealing. But one way or the other, she doesn’t want to play the game you want to play.
No one is forced to play a game that they don’t want to play. She doesn’t get to force you to play a game you don’t want to play. If you don’t want to play the game she wants to play, don’t play that game. If she doesn’t want to play the game you want to play, she shouldn’t. Agree to play, or don’t play: fundamentally those are the only choices available to anyone in this game. And it’s pretty clear that the two of you don’t want to play the same game.
There can’t be a game unless everyone agrees to be playing the same game. You need to talk to the entire group about the game you are proposing to run. Emphasize the things you want to see emphasized in the actual game. Get feedback, listen to questions or concerns, and try to come to a consensus among the entire group about what game you want to play. Ultimately, you can only run a game if you have players who agree to play.
If you have deal-breakers, name them. If you are unwilling to run a game for players who show up unprepared—no character sheet, incomplete character sheet (e.g. missing spells prepared), or whatever—say that. If you are unwilling to allow players who fail to prepare to gain advantage from that—for example, by suddenly having prepared exactly the spell they want when they failed to prepare them ahead of time—say that. If you are unwilling to run a game for people who disrupt the game and cause arguments—say that.
Emphasize that you will not run the game if deal-breakers happen—and mean it. And see what they say in response. If they agree, and follow through, then great. If not, stick to your guns. If you said you would not run a game if people came unprepared, then call off the game and do something else with your time if she shows up without her character sheet, or without her spells prepared. See how much the rest of the group appreciates and wants her presence in the game if she’s preventing the game from happening. See how long she sticks with the game if she doesn’t honestly want to play that way and isn’t enjoying it. Maybe she’ll surprise you. Or maybe she won’t, but at least the rules were established from the beginning, so the others are less likely to hold them against you.
But ultimately, you need to improve communication here, establishing your expectations clearly and publicly, and then you need to improve your follow-through, make sure that what you established is actually upheld. Otherwise you have no hope.
You may find yourself with fewer players than you imagine
The rest of the group, it seems, hasn’t been bothered by her antics in previous games. They don’t mind that she is always casting whatever she feels like, and they don’t mind that she disrupts the game to argue with the DM about it. They may be more on-board with her kind of game than with yours. They may not want to play a game that’s strict. You may not have a group to run for.
But that’s why I called them “deal-breakers”—if they happen, there’s “no deal,” you walk away and there’s no game. That’s the option you get. If you want to run a game even if there are these problems, then they aren’t deal-breakers and you shouldn’t call them. If you cannot follow-through on the rules you established, for all of your players, then they aren’t really rules. So you have to determine for yourself that you feel strongly enough about these things to prefer no game over a game with them. “No gaming is better than bad gaming” is a commonly-quoted maxim around here, and it’s true—but you have to determine what “bad gaming” is for yourself.
If these aren’t truly deal-breakers for you, you can still bring up your preferences—but odds are good that you’ll find enforcing them to be a deal-breaker for at least the one player, so if you give at all, you’ll likely give it all away and have to let her have her way. If that sounds awful and miserable, well, then, they are deal-breakers for you. But “no deal” is always going to be a possibility; it has to be for this to work. You can’t force anyone to play a game they don’t want to play.
Enforcing the rules against antagonistic players is miserable. Talk about “bad gaming.” You should trust your players enough to abide by the rules established at the beginning of the game. If you don’t, then you don’t really have a game. That, for me, would be an absolute deal-breaker.
So keep that in mind when you think about the rules you want to establish. The ideal here is for everyone to keep track of their own character—and do so honestly. Any and all advice you get about how to enforce things, no matter how good it is, is necessarily going to mean quite a bit more work for you. Consider carefully what and how much you’re willing to do for players before you run a game. Consider carefully whether or not it’s worth it.