안녕하세요 한주현입니다.
오늘은 ImportError: No module named req 가 발생하는 원인, 그리고 그 해결 방법에 대해 알아보겠습니다.
문제 상황
Python을 작업하는 개발자 대부분은 99.999% (100% 는 아니겠지만..) 아주 높은 확률로 python3로 작업을 하시겠지만,
옛날에 진행된 프로젝트의 github repository를 다운받아서 툴을 설치하게 되면 python2로 만들어진 뒤 repo가 관리가 안되어서 어쩔 수 없이 python2로 수행해야 하는 경우가 있습니다.
python2를 통해 다운받은 github repository의 setup.py를 아래와 같이 수행하여 설치할 수 있는데,
ㅤ
$ python2 setup.py install
ㅤ
ImportError: No module named req
로 나오는 경우가 종종있습니다.
아래 코드에서 해당 문제가 발생을 하게 되는데,
ㅤ
from pip.req import parse_requirements
ㅤ
이는 pip 버전 10 부터 pip.req 가 없기 때문입니다
하위 호환성을 염두하지 않고 바꾸는 것이 쓰는 사람 입장에서 상당히 곤란합니다만... 흠냐뤼.. 어쩔 수 없죠 -_-..
그래도 이를 우회해서 할 수 있는 방법이 있어서 소개해 드립니다.
해결 방법
ㅤ
from pip._internal.req import parse_requirements
ㅤ
pip.req 를 pip._internal.req 로 바꾸면 이전 pip 버전에서의 pip.req 를 사용하실 수 있습니다.
또한 pip 버전이 몇 버전을 사용하는지 알지 못하는 상황에서 모든 버전의 호환성을 고려하여 코딩을 하신다면,
pip10 이상의 버전에서 Import 오류가 발생하는 경우만 pip._internal.req 를 사용하도록 아래와 같이 코딩해 볼 수도 있겠습니다!
ㅤ
try: # for pip >= 10
from pip._internal.req import parse_requirements
except ImportError: # for pip <= 9.0.3
from pip.req import parse_requirements
ㅤ
마치며
오늘은 ImportError: No module named req 가 발생하는 원인과 그 해결 방법에 대해서 알아보았습니다.
여러분들께 도움되셨음 좋겠네요! 그럼 다음에 만나요!
참고 링크
본 포스팅 내용은 아래 링크를 참고하여 작성하였습니다.
https://stackoverflow.com/questions/25192794/no-module-named-pip-req
댓글