[우분투]pyenv를 통한 파이썬(python) 가상환경 구축 및 텐서플로, 케라스 설치
업데이트:
[우분투] pyenv 를 이용해 파이썬 가상환경 구축하기(최근 업데이트: 2023.09.01)
- 윈도우에 아나콘다를 사용해 파이썬 가상환경 설치하기
- 맥북에 파이썬 가상환경(pyenv) 설치하기
- 우분투에 파이썬 가상환경(pyenv) 설치하기
- CentOS에 파이썬 가상환경(pyenv) 설치하기
제가 현재 사용중인 환경은 우분투(ubuntu) 입니다.
1. 사전 환경 업데이트
$ sudo apt update
$ sudo apt dist-upgrade
2. pyenv 설치하기
전체적인 설치 과정은 https://github.com/pyenv/pyenv-installer 참고 부탁드립니다.
2.1. 사전 프로그램 설치
본격적인 pyenv 설치에 앞서 사전 프로그램을 설치해야 해야 합니다. 2023년 8월 현재는 사전 프로그램 설치 안해도 괜찮다는 식으로 말하지만 사실은 설치해야합니다. 사전 프로그램 설치 안하면 파이썬 가상환경 설치가 안되오니 꼭 설치하시기 바랍니다.
https://github.com/pyenv/pyenv/wiki#suggested-build-environment
위 사이트를 참조하여 다음 코드를 실행합니다. 아래 코드 실행하면 중간에 Y/N 묻는거 나오는데 Y 입력하시면 됩니다.
$ sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
...(중략)
Setting up libxslt1-dev:amd64 (1.1.29-5ubuntu0.2) ...
Setting up libxmlsec1-dev (1.2.25-1build1) ...
Processing triggers for ureadahead (0.100.0-21) ...
Processing triggers for install-info (6.5.0.dfsg.1-2) ...
Processing triggers for libc-bin (2.27-3ubuntu1.4) ...
Processing triggers for systemd (237-3ubuntu10.47) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
다음 단계로 넘어가기 전에 혹시나 git이 설치 되지 않았다면 git을 설치해줍니다. git 설치시에도 중간에 Y/n 묻는데 Y를 입력해줍니다.
$ sudo apt install git-all
...(중략)
Need to get 48.2 MB of archives.
After this operation, 264 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
...(중략)
+ emacs25 -batch -q -no-site-file -f batch-byte-compile git.el git-blame.el
Setting up git-all (1:2.17.1-1ubuntu0.9) ...
Processing triggers for libgdk-pixbuf2.0-0:amd64 (2.36.11-2) ...
Processing triggers for libc-bin (2.27-3ubuntu1.4) ...
2.2. pyenv 설치
다음 코드를 입력하면 pyenv가 설치 됩니다.
$ curl https://pyenv.run | bash
Cloning into '/home/ubuntu/.pyenv'...
remote: Enumerating objects: 876, done.
remote: Counting objects: 100% (876/876), done.
...(중략)
위 코드를 실행하면 설치 후 마지막 부분에 다음과 같은 메시지가 뜹니다.
WARNING: seems you still have not added 'pyenv' to the load path.
# Load pyenv automatically by appending
# the following to
~/.bash_profile if it exists, otherwise ~/.profile (for login shells)
and ~/.bashrc (for interactive shells) :
export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
# Restart your shell for the changes to take effect.
# Load pyenv-virtualenv automatically by adding
# the following to ~/.bashrc:
eval "$(pyenv virtualenv-init -)"
위 메시지는 ~/.bashrc에
eval "$(pyenv virtualenv-init -)"
를 추가하라는 뜻입니다. 그러나 위 한줄만 추가하면 되는 것은 아니고
~/.bashrc에 다음과 같은 내용을 추가해줍니다.
export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
그리고나서 다음 코드를 입력해 쉘을 재시작합니다.
$ exec $SHELL
3. pyenv 설치 확인
$ pyenv
pyenv 2.3.25
Usage: pyenv <command> [<args>]
Some useful pyenv commands are:
--version Display the version of pyenv
activate Activate virtual environment
commands List all available pyenv commands
deactivate Deactivate virtual environment
doctor Verify pyenv installation and development tools to build pythons.
exec Run an executable with the selected Python version
global Set or show the global Python version(s)
help Display help for a command
hooks List hook scripts for a given pyenv command
init Configure the shell environment for pyenv
install Install a Python version using python-build
local Set or show the local application-specific Python version(s)
prefix Display prefixes for Python versions
rehash Rehash pyenv shims (run this after installing executables)
root Display the root directory where versions and shims are kept
shell Set or show the shell-specific Python version
shims List existing pyenv shims
uninstall Uninstall Python versions
version Show the current Python version(s) and its origin
version-file Detect the file that sets the current pyenv version
version-name Show the current Python version
version-origin Explain how the current Python version is set
versions List all Python versions available to pyenv
virtualenv Create a Python virtualenv using the pyenv-virtualenv plugin
virtualenv-delete Uninstall a specific Python virtualenv
virtualenv-init Configure the shell environment for pyenv-virtualenv
virtualenv-prefix Display real_prefix for a Python virtualenv version
virtualenvs List all Python virtualenvs found in `$PYENV_ROOT/versions/*'.
whence List all Python versions that contain the given executable
which Display the full path to an executable
See `pyenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/pyenv/pyenv#readme
쉘에서 pyenv 를 실행했을때 위와 같은 화면이 나온다면 잘 설치된 것입니다.
4. 파이썬 설치
현재 설치 가능한 파이썬 버전을 확인해 봅시다.
$ pyenv install --list
Available versions:
2.1.3
2.2.3
2.3.7
저는 현재 가장 최신 파이썬 버전인 3.11.4를 설치하겠습니다.
$ pyenv install 3.11.4
Downloading Python-3.11.4.tar.xz...
-> https://www.python.org/ftp/python/3.11.4/Python-3.11.4.tar.xz
Installing Python-3.11.4...
(랙 걸린거 아님, 조금 기다려야함)
Installed Python-3.11.4 to /home/ubuntu/.pyenv/versions/3.11.4
파이썬 설치후 설치된 파이썬의 버전을 확인해 봅시다.
$ pyenv versions
system(set by /home/cheolwon/.pyenv/version)
* 3.11.4
5. 파이썬 가상환경 설치
가상환경 생성 문법은 아래와 같습니다.
pyenv virtualenv
저는 3.11.4 버전의 가상환경이므로 py3_11_4 라는 가상환경이름으로 짓겠습니다.
$ pyenv virtualenv 3.11.4 py3_11_4
이렇게 파이썬 가상환경이 설치 되었습니다. 가상환경 설치가 잘 되었는지 확인해 봅시다.
$ pyenv versions
* system (set by /home/ubuntu/.pyenv/version)
3.11.4
3.11.4/envs/py3_11_4
py3_11_4 --> /home/ubuntu/.pyenv/versions/3.11.4/envs/py3_11_4
또한 아래로 가시면 방금설치하신 가상환경 디렉토리를 확인하실수 있습니다.
$ cd ~/.pyenv/versions
7. 가상환경 실행, 해제, 삭제
가상환경 사용하기(접속하기)
$ pyenv activate py3_11_4
가상환경 해제하기 (빠져나오기)
$ source deactivate
가상환경이나 파이썬 삭제하기
$ pyenv uninstall py3_11_4
$ pyenv uninstall 3.11.4
8. 가상환경 실행 후 라이브러리 설치하기
현재 설치된 라이브러리 리스트
$ pyenv activate py3_11_4
(py3_11_4)$ pip list
numpy를 설치해봅시다.
$ pyenv activate py3_11_4
(py3_11_4)$ pip install numpy
pandas 설치
(py3_11_4)$ pip install pandas
matplotlib 설치
(py3_11_4)$ pip install matplotlib
텐서플로(tensorflow) 설치
(py3_11_4)$ pip install tensorflow==2.6.0
케라스(keras) 설치
(py3_11_4)$ pip install keras
파이토치 설치(CPU) 버전
(py3_11_4)$ pip install torch torchvision torchaudio
플라스크(flask), 장고(django) 설치
(py3_11_4)$ pip install flask
(py3_11_4)$ pip install django
(py3_11_4)$ pip install gunicorn
(py3_11_4)$ pip install uwsgi
PostgreSQL과 연결하기 위한 psycopg2 설치
(py3_11_4)$ pip install psycopg2 #만약 이게 설치 안되면 아래 명령어로 설치
(py3_11_4)$ pip install psycopg2-binary
주피터 노트북 설치
(py3_11_4)$ pip install jupyter
주피터 노트북 실행
(py3_11_4)$ jupyter notebook
부록.
텐서플로 버전
import tensorflow as tf
tf.__version__
'2.6.0'