Germany striker Mario Gomez "will not be playing" for Besiktas again because of the "political situation" in Turkey.
Gomez scored 28 goals in 41 games for the Istanbul club, while on loan from Serie A side Fiorentina, and won the Turkish league title.
On Friday, an attempted army coup took place in Turkey with 161 civilians and police killed.
"It's purely down to the terrible events in the last few days. I hope you can understand that," said Gomez.
"There are no sporting or any other reasons that have made me make this decision," the 31-year-old added on Facebook.
Gomez had agreed a season-long loan last year, which included an option to make the deal permanent.
"It was a difficult decision that I had to think about a lot," he said.
"I have to tell you Besiktas fans personally that it is very heavy for me that I will not be playing for this great club in front of you wonderful fans in this unique stadium anymore.
"A huge thanks to the club, to you fans and to all the people with whom my family and I had a lot of wonderful times.
"It was a fantastic year with the championship providing the absolute highlight. I hope that these political problems can be solved in a peaceful manner soon."
Gomez represented Germany at Euro 2016, scoring twice as they went out at the semi-final stage to hosts France.