imhamburger 님의 블로그
파이썬(Python) - pyenv 설치, pdm 패키지, python 간단한 기능 구현하기 본문
pyenv 는 여러 버전의 파이썬을 실행 및 관리할 수 있는 프로그램이다.
파이썬은 가장 최근 버전을 사용하는게 좋은게 아닌가?
라고 생각할 수 있겠지만,
회사에서 옛날 데이터를 다룰 때 구버전의 파이썬을 이용했다면 해당 버전으로 확인해야하기 때문에 여러 버전의 파이썬을 실행하고 관리할 수 있는 pyenv 가 있어야 한다.
- 다양한 파이썬 버전으로 테스트해 볼 수 있다.
- 다른 버전의 파이썬 프로젝트를 해야할 때 편리하다.
- 최신 버전의 파이썬 기능을 써보고 싶을 때 테스트해 볼 수 있다.
pyenv 설치는 깃허브에 올라와있는 공식문서를 확인하면 된다. 나는 맥이어서 brew install pyenv로 설치하였다.
간혹, 아래 사진처럼 C Compiler 어쩌고저쩌고 에러가 날 수 있다.
pyenv를 설치하기 전 os에 맞는 종속성이 필요하다. 종속성들은 대부분 C언어로 작성된 개발 도구이며, pyenv가 해당 소스에서 빌드하여 파이썬을 설치하기 때문에 필요하다. 따라서 아래 명령어를 입력하여 설치해야 한다.
$ brew install openssl readline sqlite3 xz zlib
근데도 계속 같은 에러가 난다?
이건 맥북에 Xcode와 Command Line Tools 가 없어서 나는 에러이기 때문에.. 다운로드를 해줘야 한다. 터미널에서도 설치가 가능하나 나는 터미널에서 계속 에러가 나서 Apple Developer 공식 홈페이지에서 설치하였다. (이미 있다면 버전 업데이트를 해줘야 한다.)
공홈으로 설치하고도 에러가 난다면, 어쨋든 설치는 정상적으로 된 것이니 내 맥북 소프트웨어 업데이트가 있는지 확인하고 업데이트를 해주고 노트북을 껐다 켜면 실행이 된다.. (이 부분 때문에 엄청 고생했다...)
무사히 pyenv가 설치되었다면, 내가 사용할 파이썬 버전을 설치해보자!
pyenv install {파이썬 버전}
예를 들어, 파이썬 3.9.19 버전을 실행하고 싶을 때 pyenv install 3.9.19 명령어를 통해 설치하고 실행할 수 있다.
해당 파이썬 버전을 이용하기 위해선 현재 파이썬 버전에서 설치한 파이썬 버전으로 전환해야 하는데 전환하는 명령어는 다음과 같다.
pyenv global {전환할 파이썬 버전}
이제 여러 버전의 파이썬을 쓸 수 있게 되었다!
근데 파이썬을 설치하기는 했는데 내가 만든 기능을 어떻게 쓰고 다른 사람들도 써보게 할 수 있지?
게다가 기능을 만들 때 여러 패키지들을 써야하는데 이걸 어떻게 관리한담? 나뿐만 아니라 다른 동료들도 내가 만든 기능들을 테스트해 볼 때 그 패키지들이 필요할텐데..
내가 쓴 패키지들을 관리해주는 도구 뭐 없나?
패키지들을 관리해주는 의존성 관리 도구인 pdm으로 모든게 가능하다.
여기서 의존성 관리가 의미하는 건, 내가 어떠한 '햄버거'라는 기능을 구현할 때 A라는 패키지를 이용했다면 "내가 만든 '햄버거' 기능은 A패키지에 의존한다~" 라고 표현할 수 있다.
따라서 의존성 관리 도구란 건 내가 어떤 기능을 구현할 때 쓴 여러 패키지들을 리스트업해주는 것이다.
패키지들을 관리해주는 의존성 관리 도구를 쓰면 좋은 이유
만약, 회사에서 내가 A라는 기능을 만들 때, 10가지 패키지들을 썼다고 가정해보자.
그리고 그것을 깃허브에 올리고 다른 동료들이 pull 하려고 하면 파일들이 너무 무거워 pull 하는데에만 시간이 엄청 오래걸릴 것이다.
그런데 만약 pdm같은 의존성 관리 도구를 썼을 때는 10가지 패키지들 본체가 깃허브에 push되는 것이 아닌 10가지의 패키지들이 리스트업 된 파일이 push된다. 그리고 그것을 다른 동료들이 pull하면, 그냥 패키지 리스트만 받는 것이니 시간이 많이 소요되지 않는다.
그리고 동료들은 리스트만 확인하고 본인 컴퓨터에 리스트안에 적힌 패키지들을 설치하면 된다. 이게 더 시간이 덜 걸리고 효율적이다.
pdm 설치방법은 간단하다. 그치만 공식문서를 확인하면서 설치하는 것을 권장한다.
brew install pdm
pdm을 실행하는 것 또한 간단하다!
mkdir {디렉토리명} && cd {디렉토리명} #디렉토리 생성 후 해당 디렉토리로 이동
pdm init #pdm 실행
source .venv/bin/activate #pdm 가상환경 활성화
그러면 아래와 같은 파일들이 생겨났을 것이다.
+ 그리고 해당 파이썬 파일들의 버전관리는 README.md가 아니라 pyproject.toml에 업데이트 해야한다.
파이썬으로 간단한 기능을 만들어보기 전에, 사전에 해줘야 하는 작업이 있다.
- pip 사이트에 방문하여 회원가입을 해야한다.
- 회원가입 후 API 토큰을 발급받는다.
- 발급받은 토큰은 페이지를 벗어나면 다시는 확인할 수 없으니 꼭 메모해두자.
갑분 pip는 뭐지?!
pip를 간단하게 생각하자면, 내가 만든 기능들을 잘 포장해주고 보관해주는 기능보관소 라고 생각하면 되겠다. 내가 만든 것이 잘 포장되어 있기때문에 나중에 회사동료도 코드 단 한줄로 내가 만든 기능을 써볼 수 있다. 게다가 다른 사람들이 만든 기능들도 코드 한 줄 만 복사하여 내 컴퓨터에 설치하고 사용할 수 있다.
이제 진짜 간단한 기능을 구현해보자. 나는 그냥 실행하면 hello! 라고 프린트되는 것을 만들어보려 한다.
src/{디렉토리명}/hello.py #src/{디렉토리명} 아래 hello.py 파일 만들기
vi hello.py #hello.py 파일 열기
hello.py라는 파이썬 파일을 만들었다. 이름은 본인이 원하는 것으로 지정하면 된다.
hello.py를 열어 코드를 입력하자.
def hi():
print('hello!')
입력 후 저장은 필수!
실행될 코드는 만들었고, 실행시켜줄 수 있게 하려면 어떻게 하지?
바로 pyproject.toml 에서 입력해주면 된다. 실행시키기 위해 입력해야하는 건 내가 마음대로 입력하는게 아니고 공식문서가 별도로 존재한다. 그것에 맞게 입력해줘야 잘 실행된다.
나는 아래와 같이 입력했다.
[project.scripts]
hi-ham = "hi_ham.hello:hi"
#{실행명} = "{디렉토리명}.{파이썬파일명}:{파이썬 함수명}"
꿀팁: 디렉토리명을 잘 모르겠다 싶으면 tree 로 확인하기. 그리고 꼭 저장하기.
이제 모든 준비는 끝났고 배포하고 실행시키는 일만 남았다. 배포하는 건 매우 간단하다.
pdm publish
위 명령어를 입력하면,
username과 password를 입력하라고 나올 것이다. 그럼 당황하지 말고 아래와 같이 입력하고 엔터를 누르면 된다.
- username : __token__
- password : 발급받은 API토큰 붙여넣기
그럼 배포가 잘 된거가? 하고 의문이 생길 것이다.
아까 pip 사이트에 다시 들어가 Your projects 에 들어가 View를 눌러 확인하면 된다.
이렇게 생겨있다면 배포는 성공적으로 된거다.
그럼 이제 마지막 단계.. 실행만 남았다.
아래 사진에 pip install ~ 어쩌고저쩌고를 복사한다.
그리고 복사한 코드를 새로운 터미널을 열어 붙여넣는다.
그럼 설치가 완료되었고, 아~까 pyproject.toml에 명시해놨던!! 실행명을 입력하면 된다. 나는 실행명을 hi-ham으로 지정했었다.
그럼 정상적으로 실행되는 것을 확인할 수 있다.
뭔가 복잡해보이는 과정이지만, 차근차근히 하다보면 익숙해지겠지...
'파이썬(Python)' 카테고리의 다른 글
파이썬(Python) - 패키지 설치하고 내가 만든 기능에 적용해보기 (0) | 2024.07.20 |
---|---|
파이썬(Python) - pyenv virtualenv 이해와 직접 패키지 만들어 배포하기 (0) | 2024.07.18 |
파이썬(Python) - 클래스(Class) (0) | 2024.06.27 |
파이썬(Python) - 모듈만들기 (0) | 2024.06.21 |
파이썬(Python) - 함수(function)와 람다(lambda) (0) | 2024.06.16 |