사용자 도구

사이트 도구


python:home

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
python:home [2024/11/12 07:57] – [python을 컴파일하기 위해서 필수] taekgupython:home [2025/04/17 14:54] (현재) – [python] taekgu
줄 1: 줄 1:
 +====== 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의 확장 플러그인.
 +  * 파이썬 버전과 라이브러리의 완전한 격리 환경을 제공.
 +
 +<code bash>
 +  brew install pyenv
 +  brew install pyenv-virtualenv
 +</code>
 +
 +<code bash>
 +$ 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
 +</code>
 +
 +<code bash .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
 +</code>
 +
 +<code bash .zshrc>
 +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
 +</code>
 +
 +  * pyenv 설치버전확인
 +<code bash>
 +pyenv versions
 +pyenv version
 +</code>
 +<code bash>
 +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
 +</code>
 +=== 3)autoenv ===
 +  * autoenv는 디렉터리 이동 시 실행되는 스크립트
 +  * pyenv-virtualenv 사용 시 불편한 수작업을 자동화.
 +  * 특정 프로젝트 폴더로 들어가면 .env파일 실행하여 가상환경 활성화.
 +  * 별소용없을 듯 합니다.
 +
 +=== 4)pip ===
 +  * 파이썬 라이브러리를 관리.
 +<code bash>
 +python -m pip install --upgrade pip
 +</code>
 +
 +====== Ubuntu,Debian에서의 python3, virtualenv, pip 사용 ======
 +
 +===== github에서 받기 =====
 +
 +<code bash>
 +git clone https://github.com/pyenv/pyenv.git ~/.pyenv
 +
 +git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
 +
 +</code>
 +
 +<code bash .zshrc>
 +export PYENV_ROOT="$HOME/.pyenv"
 +export PATH="$PYENV_ROOT/bin:$PATH"
 +eval "$(pyenv init --path)"
 +</code>
 +===== 설치 =====
 +
 +<code bash>
 +% sudo apt python3 python3-virtualenv python3-pip
 +</code>
 +
 +pip버젼확인과 pip업그레이드
 +<code bash>
 +python3 -m pip install --user --upgrade pip
 +
 +python3 -m pip --version
 +</code>
 +
 +<code bash>
 +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
 +</code>
 +
 +<code bash>
 +git clone https://github.com/pyenv/pyenv.git ~/.pyenv
 +</code>
 +
 +<code bash>
 +export PYENV_ROOT="$HOME/.pyenv"
 +export PATH="$PYENV_ROOT/bin:$PATH"
 +eval "$(pyenv init --path)"
 +</code>
 +
 +<code bash>
 +curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
 +</code>
 +
 +<code bash>
 +pyenv virtualenv 3.12.2 maro
 +</code>
 +
 +