think it's easy to tell:
1.In the conflict with vietnam in the south-sea 1980s,naval needs air support and CAP.but plaaf and planaf said they can't,because q5/h5/j6/j7/j8 can not fly so far,and h6 can fly there but with no escort while vietnam's mig-23 and su-22 can reach there easily and give deadly fire power. Although they won the battle,requirements of long range air support are liftted to highest priority. To fit these requirements we now see su-27s in Zhanjiang and J-8ii in Hainan island .
Su-27's long leg is the first reason.
2. J-10 project,the son of dead J-9 project,Institute 611's savior and only hope that just defeated Institue 601's J-13 project,began in 1986. Think of the large cut of military industry that time, Y-10(4 engine airliner),former Y-9(6 or 4 engine airlifter),YuanHong(6 or 4 engine strategic bomber),Q-6(attacker with VG wing),former J-11,J-13(chinese copy of F-16) and a STOL fighter project were all cancelled. As there are limited funds,importing mig-29 means threat to J-10,and they will and they must defend for their own child.(this means most of the funds will given to the institue 611 and factory CAC when other factory/institute will have to build civil products to survive)
3.J-8II,because of the TAM affairs 1989,Peace Pearl project suspent and then stopped. That time,J-13 was defeated by J-10,Institute 601 and SAC had no new peoject at all and thus no funds no money,this was too terrible. but luckly plaaf and planaf needs new war birds,and J-8ii is the only choice availible except foreign vendor's. Mig is a threat but Su not. So voice said "with new avionics and Python-3 and Aspide,J-8ii has chance to challenge F-16 and Mig-29".
The two largest Institute/Factory are against Mig-29,another reason.
4.After test flights,Su-27 is better than Mig-29,and the price is reasonable. China tested Mirage2000 at 1980's,and seriously wanted import and build them,but cancelled because too high price.Same thing happend to Tornado.
Now,a cheaper but stronger choice is on the table,why turn to another.
The last reason.