Safety is a top concern for the civil aviation industry, and the risk of safety accidents will increase due to pilot fatigue. To ensure the safety of civil aviation, this paper proposes a method to solve the crew scheduling problem considering pilot fatigue. In order to reflect individual differences and fatigue levels of pilots, an improved three-stage alertness calculation model is first proposed based on subjective and objective perspectives to represent pilots’ alertness levels and fatigue working duration quantitatively. Then, for the crew scheduling problem considering pilot fatigue, a mixed integer programming model is constructed to simultaneously achieve the optimization objectives of reducing the overall scheduling cost and crew fatigue working duration. Next, since the actual crew scheduling problem is large-scale, a solution algorithm based on a column generation framework is developed to improve the quality and efficiency of solving the large-scale crew scheduling problem. Furthermore, in the case study, we collected actual data from an airline company to validate the effectiveness of our proposed method. Finally, through multiple experimental comparisons and analyses, to balance the two optimization objectives mentioned above, it is more reasonable to handle pilot fatigue working duration with soft constraints. Sensitivity analysis reveals the variation rules of the crew cost and fatigue, providing some valuable managerial insights for the crew scheduling problem considering pilot fatigue.