Skip to content
/ python Public

Python is a object-oriented, interpreted, and interactive programming language.

License

Notifications You must be signed in to change notification settings

xpdojo/python

Repository files navigation

Python

Python 2는 2020년 1월 1일부터 더 이상 지원되지 않는다. 버그 수정, 보안 패치, 새로운 기능의 역포팅(backporting)이 이뤄지지 않는다. Python 2를 사용하는 데 따른 책임은 본인에게 있다.

만약 Python 2 예제 코드 등을 확인할 일이 있다면 2to3를 사용할 수 있다.

2to3 -w .

다운로드

pyenv

Build Dependencies

# Ubuntu/Debian
sudo apt-get 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 python3-openssl

# Fedora/CentOS/RHEL
sudo yum install gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite \
sqlite-devel openssl-devel xz xz-devel libffi-devel

# macOS
brew install openssl readline sqlite3 xz zlib
curl https://pyenv.run | bash
# ~/.zshrc
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
exec $SHELL
# 3.9.*, 3.10.*
pyenv install --list | egrep " 3\.(9|10)\."
pyenv install 3.9.16 -v
# /home/markruler/.pyenv/versions/3.9.16

pyenv versions                                                                                                ✭
* system (set by /home/markruler/.pyenv/version)
  3.9.16

pyenv install 3.10.9 -v
# /home/markruler/.pyenv/versions/3.10.10

Ubuntu 22.04

sudo apt install python3-pip
python --version
# command not found: python

python3 --version
# Python 3.10.4

pip --version
# pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10)

pip3 --version
# pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10)
python3 -m pip3 install --upgrade pytest
pytest --version
# command not found: pytest

일반적으로 설치했을 경우 $HOME/.local/bin에 설치되기 때문에 전역적으로 사용하려면 python3 명령어를 사용하거나 $HOME/.local/bin$PATH에 추가한다. 혹은 간단하게 심볼릭 링크를 생성한다.

python3 -m pytest --version
# pytest 7.1.3
sudo ln $HOME/.local/bin/pytest /usr/local/bin/pytest
pytest --version
# pytest 7.1.3

CentOS 7

기본적으로 2.7.5가 설치되어 있다.

python --version
# Python 2.7.5

YUM을 이용해 설치하면 3.6.8이 설치된다.

sudo yum install python3
python --version
# Python 3.6.8

3.10을 설치하기 위해서는 직접 설치해야 한다.

sudo yum install gcc openssl-devel bzip2-devel libffi-devel
cd /tmp
curl -LO https://www.python.org/ftp/python/3.10.7/Python-3.10.7.tar.xz
tar xf Python-3.10.7.tar.xz
cd Python-3.10.7

ssl 모듈을 사용하려면 openssl 1.1.1을 설치해야 한다.

sudo yum install openssl-devel
openssl version
# OpenSSL 1.0.2k-fips  26 Jan 2017

sudo yum remove openssl-devel
yum install gcc gcc-c++ pcre-devel zlib-devel perl wget
cd /tmp
# https://www.boho.or.kr/data/secNoticeView.do?bulletin_writing_sequence=66719
# https://www.openssl.org/source/
curl -LO https://www.openssl.org/source/openssl-1.1.1q.tar.gz

sha256sum openssl-1.1.1q.tar.gz
curl https://www.openssl.org/source/openssl-1.1.1q.tar.gz.sha256

tar xf openssl-1.1.1q.tar.gz
cd openssl-1.1.1q

./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib
make
sudo make install

echo "/usr/local/ssl/lib" | sudo tee /etc/ld.so.conf.d/openssl-1.1.1q.conf

which openssl
# /usr/bin/openssl
sudo mv /usr/bin/openssl /usr/bin/openssl-1.0.2k
sudo ldconfig -v

sudo ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
openssl version
# OpenSSL 1.1.1q  5 Jul 2022

openssl 경로와 함께 python을 설치한다.

# ./configure --enable-optimizations
# sudo make altinstall
# Could not build the ssl module!
# Python requires a OpenSSL 1.1.1 or newer

cd /tmp/Python-3.10.7
./configure --with-openssl=/usr/local/ssl
sudo make altinstall
python3.10 --version
# Python 3.10.7

python3라는 명령어를 사용하기 위해서는 심볼릭 링크를 생성한다.

which python3.10
# /usr/local/bin/python3.10

sudo ln /usr/local/bin/python3.10 /usr/local/bin/python3
python3 --version
# Python 3.10.7

Windows 11

wsl
sudo apt update
sudo apt upgrade
sudo apt autoremove
sudo apt install python3-pip
pip install --upgrade pytest

echo "export PATH=\$PATH:/home/markruler/.local/bin" >> .bashrc
source .bashrc
pytest --version
# pytest 7.1.3
pytest

Python Code Formatter

Package Installation

# https://bugs.python.org/issue22295
python3 -m pip install $PACKAGE

Virtual Environment (venv)

The virtual environment was not created successfully because ensurepip is not available. On Debian/Ubuntu systems, you need to install the python3-venv package using the following command.

# 만약 커맨드가 없다면
apt install python3.11-venv
# python3 -m venv {venv_name}
python3 -m venv venv
echo "venv" >> .gitignore
# Unixlike
source venv/bin/activate

# Windows
venv\Scripts\activate

더 읽을거리

About

Python is a object-oriented, interpreted, and interactive programming language.

Topics

Resources

License

Stars

Watchers

Forks

Languages