1.1.3. Python Environment Overview#

Có 2 loại thường được sử dụng là:

  • venv: tạo môi trường python mới

  • conda: tạo môi trường conda mới

1.1.3.1. venv - virtual environments#

Khởi tạo venv

python -m venv </path/to/new/virtual/environment>
  • Để khởi tạo venv với môi trường python cụ thể nào đó, ta cần cài python version đó trước khi khởi tạo môi trường mới

# Window: Cài đặt python@3.9 trước
python3.9 -m venv new_env

# Ubuntu
sudo apt update
sudo apt install python3.9
python3.9 -m venv new_env

# Macos
brew install python@3.9
python3.9 -m venv new_env

Activate môi trường

# Window
.\new_env\Scripts\activate

# Linux/MacOS
source new_env/bin/activate

Deactivate

deactivate

List vent

deactivate

1.1.3.2. Conda environment#

1. Tạo môi trường

conda create -n <env_name> python=<python_version>

Hoặc tạo môi trường từ environment.yaml

conda env create -f environment.yml

Thông thường môi trường sẽ được tạo trong ~/anaconda3/envs/ hoặc ~/miniconda3/envs/ chứ không lưu trữ trực tiếp tại project directory. Nếu muốn lưu trữ trực tiếp tại project

conda create --prefix ./env_name

2. Activate

conda activate <env_name>

Lúc này bạn sẽ thấy có “env_name” ở đầu command

3. Deactivate

conda deactivate

4. Để liệt kê các environments đã được cài đặt

conda env list

5. Để liệt kê danh sách packages cũng như version tương ứng

conda list

6. Để cài đặt một package

conda install <package_name>
# hoặc 
conda install <package_name>==<version>

7. Update package

conda update <package_name>

8. Loại bỏ packages trong một môi trường bất kì

conda remove -n <name_env> <name_package>

9. Loại bỏ packages trong môi trường hiện tại

conda remove <name_package>

10. Export environment

conda env export > environment.yml

It should yield the following file:

name: conda_tutorial
channels:
  - defaults
dependencies:
  - ca-certificates=2022.4.26=hecd8cb5_0
  - certifi=2021.10.8=py39hecd8cb5_2
  - libcxx=12.0.0=h2f01273_0
  - libffi=3.3=hb1e8313_2
  - ncurses=6.3=hca72f7f_2
  - openssl=1.1.1n=hca72f7f_0
  - pip=21.2.4=py39hecd8cb5_0
prefix: /Users/vatsalpatel/anaconda3/envs/conda_tutorial

Sau đó có thể tạo môi trường từ file yaml

conda env create -f environment.yml

11. Clone environment

conda create --name <clone_name> --clone <existing_env_name>

12. Delete environment

conda remove --name <env_name> --all

1.1.3.3. pip#

Pip được sử dụng để quản lý thư viện được sử dụng trong cả venvconda, tuy nhiên trong conda nên ưu tiên sử dụng conda native để cài đặt thư viện nếu có thể để tránh xung đột

1. Cài đặt thư viện

pip install <package_name>
# hoặc 
pip install <package_name>==<version>

2. Upgrade thư viện

pip install --upgrade <package_name>

3. Xóa thư viện

pip uninstall <package_name>

4. Get info thư viện

pip show <package_name>

5. Để liệt kê danh sách packages cũng như version tương ứng

pip list

6. Export requirements.txt

pip freeze > requirements.txt

7. Install from requirements.txt

pip install -r requirements.txt

1.1.3.4. Environment Variable#

1.1.3.4.1. Create & use Env Vars#

In macOS | Linux | Bash

# You could create an env var MY_NAME with
export MY_NAME="Wade Wilson"

# Then you could use it with other programs, like
echo "Hello $MY_NAME"

Hello Wade Wilson

1.1.3.4.2. Read env vars in Python#

In python file main.py :

import os

name = os.getenv("MY_NAME", "World")
print(f"Hello {name} from Python")

Run in bash

💬 Create an env var MY_NAME in line for this program call
MY_NAME="Wade Wilson" python main.py

💬 Now it can read the environment variable

Hello Wade Wilson from Python

💬 The env var no longer exists afterwards
python main.py

Hello World from Python