mac에서 brew install python@3.6 등의 명령으로 여러버전의 python을 설치할 수 있으나, 과거 버전은 지원하지 않는다.

이때 pyenv를 통해서 여러버전의 python을 동시에 운용할 수 있다.

먼저 brew install pyenv를 통해서 pyenv를 설치한다음

pyenv install 3.6 등의 명령어를 통해 필요한 버전을 설치하면 된다.

해당 버전으로 전환하기 위해서는 먼저 .zshrc또는 .bashrc파일에 다음 내용을 추가해야한다.

(참고로 macOS의 경우 요즘엔 zsh이 기본이다)

export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"

그다음 source ~/.zshrc 또는 source ~/.bashrc로 적용하고

 

pyenv global 3.6 등의 명령어를 통해 버전을 전환하면 된다.

global은 시스템 전체에서 기본적으로 사용할 Python 버전을 설정하라는 명령어이다.

local을 대신 쓰면  그 프로젝트의 디렉터리 내에서만 사용할 Python 버전을 따로 설정할 수 있다.

pyenv versions 를 통해서 현재 시스템에 설치된 버전들을 볼 수도 있다.

pyenv global system을 하면 원래 시스템의 python으로 돌아갈 수도 있다.

 

virtualenv와의 관계

pyenv
역할: pyenv는 여러 버전의 Python을 설치하고 관리하는 데 사용됩니다. pyenv를 사용하면 시스템 전체에 걸쳐 여러 Python 버전을 설치하고, 각각을 필요에 따라 선택하여 사용할 수 있습니다. 이를 통해 서로 다른 프로젝트에서 다른 Python 버전을 쉽게 사용할 수 있습니다.

activate 명령어: pyenv는 환경을 활성화하기 위해 activate 명령어를 직접 사용하지 않습니다. 대신, pyenv local, pyenv global, pyenv shell 같은 명령어를 통해 Python 버전을 설정합니다. 이러한 설정을 통해 특정 디렉터리나 세션에서 사용할 Python 버전을 자동으로 활성화하게 됩니다.

많은 사용자들은 pyenv 를 사용하여 여러 Python 버전을 관리하고,
virtualenv (또는 pyenv 의 플러그인인 pyenv-virtualenv )를 사용하여 특정 버전에 대한 독립적인 개발 환경을 생성합니다. 이렇게 하면 Python 버전 관리와 프로젝트 의존성 관리를 모두 효과적으로 할 수 있습니다.

 

반응형

'Programming > Python' 카테고리의 다른 글

venv  (0) 2023.12.17
mypy / pytype  (1) 2023.10.07
python 스트링 인코딩 핸들링  (0) 2021.11.30
Python GUI Programming(Tkinter)  (0) 2021.01.02
파이선환경 그리고 requirements.txt  (0) 2020.09.20

 

venv는 virtualenv와 비슷하며 특징을 정리하면 다음과 같음

 

venv

  • venv는 python개발진에 의해 개발되었으며, python3.3부터 등장과 동시에 표준라이브러리로 공식 지원됨.
  • 공식 지원되므로 별도의 설치과정이 필요 없음

 

virtualenv

  • virtualenv는 python 2버전 시절 부터 널리 사용되었으며, 따라서 지금도 python2버전을 지원함
  • virtualenv가 표준으로 채택되지 않은 이유는 더 간단하고 일관된 환경을 만들기 위한 판단이었던것으로 보임
  • virtualenv는 venv보다 더 많은 기능을 제공. 예를 들어, 특정 버전의 Python을 지정하여 가상 환경을 생성할 수 있음
  •  Python 표준 라이브러리에 포함되어 있지 않기 때문에 별도로 설치해야 함
반응형

'Programming > Python' 카테고리의 다른 글

pyenv를 통한 python버전 변경  (0) 2023.12.17
mypy / pytype  (1) 2023.10.07
python 스트링 인코딩 핸들링  (0) 2021.11.30
Python GUI Programming(Tkinter)  (0) 2021.01.02
파이선환경 그리고 requirements.txt  (0) 2020.09.20

비동기 함수를 콜하고 그 결과를 가져와서 사용하는 코딩을 할때 유용.

Executor를 통한 스레드풀 생성을 하고 해당 executor에 submit하는 방식이다.

멀티스레딩인 만큼 동시성 제어관련 코드가 필요할 수 있다.

 

간단한 예시는 아래와 같다.

https://github.com/sevity/problem_solving/blob/main/java/FutureExample.java

 

추가 업데이트 예정.

반응형

+ Recent posts