RuntimeError: Failed to lock Pipfile.lock!

Infinity-blue·2024년 1월 19일
0

가상환경을 만들기 위하여 pipenv --python <"version">을 입력하였다. 미리 내가 만들어놓았던 requirements.txt가 인식되어 Pipfile이 자동으로 만들어졌고 이 pipfile을 이용하여 pipfile.lock을 만들기 위해 pipenv installpipenv lock을 입력했다. 에러가 다음과 같이 뜬다.

요약하자면 제목과 같은 오류인데, python과 pipenv 버전 사이의 호환성 문제같아 보인다.
python 3.7 기반의 가상환경을 만들었는데 오류에 3.8...이 나오길래 pipenv 버전과 파이썬 3.7 상호성에 문제가 있는지 공식문서를 확인해보았지만 문제는 없었다.
로컬과 가상환경의 Pipenv 버전을 각각 출력했더니 버전이 다르다.
로컬은 2023.10.20 인데 가상환경은 2023.11.15가 출력된다.

그래서 pip uninstall pipenv를 했더니 가상환경의 최신버전만 삭제되길래 직접 로컬버전의 경로를 입력해서 삭제하였다. 로컬과 가상환경의 pipenv버전을 통일시켰다.

우선. pipenv 경로확인 후 경로를 입력하여 아래와 같이 삭제.

which pipenv
<"pipenv 설치경로"> uninstall pipenv 

기존의 가상환경을 삭제하고 새로운 가상환경을 생성해서 접속한 후 pipenv lock을 처음과같이 시도했더니 같은 오류가 떴다. 로컬과 가상환경의 파이썬과 pipenv 버전은 동일하다. 캐쉬 문제도 아니다. Pipenv 2023.11.15와 파이썬 3.7의 호환 문제도 아니다. 마지막으로, 가상환경에서 pipenv와 파이썬의 경로를 출력해보았다. 출처 경로가 다르다는 것을 알 수 있었다. 오류에서 떴었던 3.8이 pipenv의 경로에 확인된다.
가상환경에 접속되어 있는 상태로 pipenv경로를 변경하고자 재설치를 하였다.

pip install pipenv

pipenv와 python의 경로가 '.../virtualenvs/..'로 아래와 같이 통일되었다. 그리고 pipenv install을 입력하였더니 오류없이 pipfile.lock이 생성되었다. 문제가 해결되었다.

Conclusion

가상환경에서의 Pipenv와 Python의 경로가 같아야한다.
python 및 pipenv가 여러 개 설치되어 있지는 않은지, 어떤 버전을 사용하고 있는지 확인한다.

pipenv 공식문서

0개의 댓글