In this paper, a non-iterative blind calibration algorithm for gain-phase errors is proposed. A mixing matrix is first obtained from the received observation data through blind signal separation. The mixing matrix is the product of the gain-phase error matrix and the ideal array manifold matrix. Then, a spatial spectrum is constructed by using the estimated mixed matrix. The direction corresponding to the maximum point of the spectral function is proved to be the azimuth of a certain source. Therefore, after the direction-of-arrival (DOA) is obtained by a one-dimensional spectrum search, the active calibration method can be used to estimate the gain-phase errors. The proposed algorithm is not limited to the calibration for uniform linear array (ULA), but also applicable to a non-uniform linear array. Moreover, the estimation performance of the algorithm will not be affected by the magnitude of the gain errors. Some simulations are given to verify the effectiveness and performance of the algorithm.