====== python ======
이제는 오래된 언어인가?
* [[python:django|Python Django]]
* [[python:venv|venv]]
* [[python:django:ubuntu|Ubuntu에서 wsgi와 Apache설정]]
* [[python:crypto|파이썬 Crypto]]
* [[python:windows|Windows 환경에서 python사용]]
* [[python:built-in|Built-In]]
* [[python:datastructure|기초자료형]]
* [[python:list|리스트]]
* [[python:string|문자열]]
* [[python:variable|변수]]
* [[python:boolean|불]]
* [[python:set|집합]]
* [[python:tuple|튜블]]
* [[python:dictionary|Dictionary]]
* [[python:json|JSON자료처리]]
* [[python:pip|Python Module 관리]]
===== 제어문 =====
* [[python:operator|연산자]]
* [[python:shell|SHELL에서 사용하기]]
====== 파이썬 가상 환경 구성 ======
아직 버전별로 무슨 차이가 있는지 python2, python3의 차이는 많이 있는 것같은데,
python2는 호환성을 위해서 사용하는 듯.. 현재는 대부분 python3를 사용하는 것으로 개인적으로 생각된다.
===== python을 컴파일하기 위해서 필수 =====
* make gcc git
* zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libssl-dev libffi-dev liblzma-dev lzma-dev
* ncurses-doc readline-doc sqlite3-doc liblzma-doc
* tk-dev ==> Tk toolkit
* freetype2-doc libx11-doc libxcb-doc libxext-doc tcl-doc tcl-tclreadline tcl8.6-doc tk-doc tk8.6-doc
==== pyenv을 이용한 가상환경 구축 ====
=== 1)pyenv ===
* 파이썬 버전을 관리하는 툴.
* 하나의 컴퓨터에 다양한 파이썬 버전을 설치하고 관리.
* 프로젝트 홈페이지: https://github.com/pyenv/pyenv
=== 2)pyenv-virtualenv ===
* virtualenv은 파이썬 환경을 격리하는 툴.
* pyenv-virtualenv은 pyenv의 확장 플러그인.
* 파이썬 버전과 라이브러리의 완전한 격리 환경을 제공.
brew install pyenv
brew install pyenv-virtualenv
$ sudo apt-get install curl git-core gcc make zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libssl-dev libffi-dev liblzma-dev lzma-dev
$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
$ cd ~/.pyenv && src/configure && make -C src
$ git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
fi
export PYENV_ROOT=/usr/local/var/pyenv
if which pyenv > /dev/null; then eval "$(pyenv init --path)"; fi
if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi
if which pyenv-virtualenv-init > /dev/null; then eval "$(pyenv virtualenv-init -)"; fi
export PYENV_VIRTUALENV_DISABLE_PROMPT=1
* pyenv 설치버전확인
pyenv versions
pyenv version
pyenv install --list
pyenv install 3.9.7
$ pyenv virtualenv 3.9.7 marox
$ pyenv shell marox
$ pyenv versions
system
3.9.7
3.9.7/envs/marox
* marox (set by PYENV_VERSION environment variable)
<-- pyenv shell marox에의해서 환경이 setting되었다고 표시 .python-version, .pyenv/version에 의해서도 설정된 경우 표시된다.
pyenv global 3.10.6
pyenv virtualenv 3.10.6 maro
pyenv virtualenv-delete maro
pyenv uninstall 3.9.7
=== 3)autoenv ===
* autoenv는 디렉터리 이동 시 실행되는 스크립트
* pyenv-virtualenv 사용 시 불편한 수작업을 자동화.
* 특정 프로젝트 폴더로 들어가면 .env파일 실행하여 가상환경 활성화.
* 별소용없을 듯 합니다.
=== 4)pip ===
* 파이썬 라이브러리를 관리.
python -m pip install --upgrade pip
====== Ubuntu,Debian에서의 python3, virtualenv, pip 사용 ======
===== github에서 받기 =====
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
===== 설치 =====
% sudo apt python3 python3-virtualenv python3-pip
pip버젼확인과 pip업그레이드
python3 -m pip install --user --upgrade pip
python3 -m pip --version
sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl git
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
pyenv virtualenv 3.12.2 maro