Every time I set up a VM instance, I initialize it every time I die. I put pyenv + venv every time to keep the environment clean. ** Incorrect information ** will always appear in Qiita, so make a new note here.
You have sudo rights to run pyenv and you need to run it first. (Source: here)
Initial execution
sudo apt-get update
sudo apt-get upgrade
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
pyenv is not a system-based management of python It is for managing packages for each personal directory.
The specific mechanism is to install a python related system under ~ / .pyenv and install it. Besides, it is a system that makes it read properly when you type a python command.
By the way, please note that it does not support the ** python2 ** command.
** For Ubuntu **, just copy and enter the following.
input
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bashrc
exec "$SHELL"
Neither yyuu / pyenv nor ~ / .bash_profile
. ** ubuntu is this. ** **
I don't know Debian or CentOS.
It is also written in Official.
By the way, if you want to use Zsh, write it in ~ / .zshenv
.
Put python
pyenv install 3.6.9
pyenv global 3.6.9
pip install --upgrade pip
This completes the individual environment python. You can love pip or anything.
venv is the official Python ** package management tool ** It manages modules to be inserted with pip for each folder.
venv
python -m venv ~/env/hoge
When you add something new with pip, it is clean and easy to manage if you put it in the venv state.
venv_activate
. ~/env/hoge/bin/activate
By doing so, you can build a venv environment. Now you can build each folder in a completely independent pip environment.
When using venv with a version of python made with pyenv, You will have a python version of the virtual environment created with pyenv.
So, if you do which python
in the ʻactivate` environment,
The folder specified by venv will appear.
In other words, pyenv is ** specialized in putting in your favorite python version **, venv is ** specialized in putting your favorite packages ** in the current Python version.
This is a big difference.
It's a shit scribble memo, but if you build on Ubuntu every time, it's convenient to have a bookmark or stock If you like it, I think it will be easier to convey the correct information, so I hope you can sympathize with me. Thank you very much.