개발지식 아카이브/Python

Python segmentation fault 해결방법

민서_Soya 2022. 9. 24. 13:51

 

Python sementation fault는 다양한 상황에서 발생할 수 있다.

1. 코드 상의 문제 (도달할 수 없는 메모리에 액세스 하는 코드를 작성했을 때)

2. 호환되지 않는 패키지 간의 충돌

 

 

나의 경우는 2였다. 원래 문제가 없던 코드였는데 특정 라이브러리 (time-decorator)를 install 한 이후부터 갑자기 Segmentation fault 에러가 발생했기 때문에, 코드에서 발생하는 문제는 아니라고 생각되었다.

time-decorator에서 참조하는 라이브러리와, 내 프로젝트 안에서 사용하는 특정 라이브러리가 충돌하는 것일 것 같았다.

그 특정 라이브러리가 무엇인지는, 에러메시지를 보고 알 수 있었다.

 

Segmenataion fault 를 던지는 참조 코드를 따라가다 보니, google or-tools 패키지에서 나오는 것이었다.

그리고 구글링해보니 나와 비슷한 상황의 사람들이 많이 있었다.

https://github.com/google/or-tools/issues/3308

 

Segmentation fault if pandas imported before ortools · Issue #3308 · google/or-tools

What version of OR-Tools and what language are you using? Version: 9.3.10497 Language: python 3.8.12 Which solver are you using (e.g. CP-SAT, Routing Solver, GLOP, BOP, Gurobi) CP-SAT What operatin...

github.com

 

위 링크에 의하면 pandas 버전 업그레이드, ortools 버전 업그레이드, pyarrow 버전 업그레이드로 Segmentation fault error를 해결한 사람들이 많다.

나는 pyarrow 버전을 올렸더니 문제가 해결되었다.