Financial details of the deal were not disclosed but British media reported that Everton paid around 20 million pounds (26.33 million dollars) for the 29-year-old who had a year left on his contract with the Spanish side.
“I am really, really happy to be at this great club, a club with so much history, and here with a manager who knows me really well," James told the club’s website.
“I’m looking forward to achieving great things here - and winning things, which is what everyone’s aim is. I’ve come here to try to improve, to get better. I’ve also come here to help the team to win, to play good football - entertaining football."
Rodriguez is Everton’s second major signing in the close-season following the arrival of Brazilian midfielder Allan from Napoli.
Everton finished 12th last term and begin their new Premier League campaign with a trip to Tottenham Hotspur on Sunday.