가상환경, 험난한 그 길

Park.Dyel·2020년 9월 28일
0
post-thumbnail

poetry

📉 virtualenv

😂 현재 필자는 외주 서비스의 Vue 기반의 FE를 개발하고, Flask 기반의 BE와 함께 유지 보수하고 있습니다.
이 외주 서비스의 BE를 개발하신 개발자분은, 한참 TDD를 시작하고 있던 때라 감사하게도 virtualenv와 pytest가 포함된 Dev Ops를 구현해주셨습니다.
😘 덕분에 유지보수 업무에서 편하게 사용하고 있었지만, 어느날 무슨 바람이 들어서였는지 ec2 위에서도 돌려보겠다고 새로운 시도를 했고
😥 그리고 그렇게 사랑스러운 가상환경 venv(가상환경 이름)는 날라갔다.

다시 가상환경을 구축하려고 하자 필자의 개발환경에 어느새 잠식한 3.8은 호락호락 이 서비스의 개발환경이었던 3.6으로 내려가지 않았습니다. 어디서 최신 문법을 쓰고 있는지 모르니 귀찮은것이었겠지만

docker 내부에서 개발환경을 구축할까 잠시 고민했지만, 왠지 더 불편할 것 같다는 생각이 들었습니다.글을 쓰며 생각을 해보니 docker가 더 편하지 않았을까? 필자는 모든 환경에 대해서 불편함을 못 느끼는 편이라 남이 좋다고 하면 적당히 추이를 보다가 쓰는 편입니다

🛠 install

설치하는 방법은 공식 문서에 잘 설명되어 있으므로 살포시 넘어가겠습니다.

여기서는 몇가지 부딪쳤던 문제들을 살펴보겠습니다.
💻 개발 환경은 windos 10의 WSL 입니다.

1. python 3.6이 깔리지 않습니다.

Ubuntu의 apt님은 친절하게도 최신버전만 제공합니다.

sudo add-apt-repository ppa:jonathonf/python-3.6
sudo apt-get update
sudo apt-get install python3.6

하지만 친절하게도 제 PC는 그리 호락호락하지 않습니다.
저 레포에 접근하지 못하고 403❌을 뱉는군요.

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.6

다행히 개발자는 많고, 따라서 해결책도 많습니다.
오랫만에 개발환경을 다시 구성하면서 느낀것인데, 기존에는 Win 10에 깡으로 Python을 설치해서 썼습니다
fish 쉘에 이쁜 기능이 있어 소개합니다.

fish_config

vue-cli가 Web GUI로 설정을 할 수 있게 해줘서 정말 감사했었는데, 이젠 쉘마져도 Web GUI를 지원해주는 군요. 선배들이 개발하던 시절에 비하면 정말 좋아진 것 같습니다.

돌아와서, 이후 poetry를 설정해줍니다.

poetry init

이후 생성된 pyproject.toml에 의존성 모듈들을 추가합니다.
하지만, 이게 왠걸 .toml 파일에 Python 버전을 명시하면 알아서 해줄줄 알았는데, 그 정도까지로는 친절하지 않은것 같습니다.
설치 순서가 꼬여서 못 찾아주는 걸수도 있겠다는 생각이 드네요. 저는 안되서 이거해봤다 저거해봤다 한거라

poetry env use python36

이제 끝났...? 잉 이게 무슨 에러지?

nameerror: name 'posixpath' is not defined poetry

Git 레포에 가보니 1.0에 고쳤다는 코멘트가 있었지만, 따끈따끈한 최신버전을 설치한 필자에게 발생했고 결국 preview 버전을 통해 해결했다는 코멘트를 믿고 업데이트를 진행하였습니다.
하지만 모두들 pip를 통해서 설치했을 때 전 curl을 믿었습니다. 하지만 느낌상 혼자서도 업데이트 할 수 있을것 같았고 다음 명령어를 수행했습니다.

poetry self update --preview

이제 개발환경을 구축했으니🕐, 자야겠습니다🛏. 개발은 내일의 저에게 맡겨야죠 🧙‍♂️ .
아직 설치중인데 60초가 넘게 걸려서 걱정되네요 후후후..

p.s

  • poetry add requirements.txt
    awk '{print $1}' requirements.txt | xargs -n1 poetry add
profile
ㄱH발자

0개의 댓글