Giới thiệu Virtual Environment trong Python

Virtual Environments là gì và dùng để làm gì?

Virtual Environment dịch nôm na là môi trường ảo 😄 Cũng giống như máy ảo (Virtual Machine), Virtual Environment thiết lập một môi trường ảo, cho phép bạn nghịch ngợm lung tung với các packages của Python mà không làm ảnh hưởng đến những packages đã được cài đặt sẵn trên Python. Ví dụ bạn muốn thử nghiệm với Django 1.8 trong khi trên hệ thống đang cài đặt Django 1.4 LTS. Cũng giống như việc bạn dùng Virtual Machine để thử nghiệm phiên bản Chrome beta mới nhất mà không muốn làm ảnh hưởng đến phiên bản đang có trên máy.

Công cụ tạo ra Virtual Environment trên Python là virtualenv. virtualenv tạo ra một thư mục chứa tất cả những thứ cần thiết (executables, libraries).

Sử dụng Virtual Environment như thế nào? Trước hết để sử dụng được Virtual Environment thì bạn phải cài virtualenv cái đã.

$ pip install virtualenv

Tạo Virtual Environment

$ virtualenv [project_name]

virtualenv sẽ tạo ra một thư mục có tên là [project_name] chứa tất cả những gì cần thiết. Hãy thử xem nội dung của thư mục này:

  • ./lib
  • ./lib/python2.6
  • ./lib/python2.6/site-packages
  • ./lib/python2.6/distutils
  • ./include
  • ./bin

Nếu trên server có nhiều phiên bản Python (2.x, 3.x) bạn hoàn toàn có thể khởi tạo Virtual Environment với một phiên bản chỉ định:

virtualenv -p /usr/bin/python2.7 [project_name]

Hoặc bạn có thể tạo một Virtual Environment mà không có các packages đã được cài đặt sẵn (trong trường hợp bạn muốn làm mọi thứ từ đầu:

virtualenv --no-site-packages [project_name]

Sử dụng Virtual Environment

Khởi động Virtual Environment bằng câu lệnh:

$ source [project_name]/bin/activate

Tên của Virtual Environment sẽ xuất hiện ở phía trước command prompt, cho ta thấy Python đang sử dụng Virtual Environment. Từ đây tất cả những packages được cài đặt mới sẽ nằm trong thư mục [project_name]

Thoát khỏi Virtual Environment

Sử dụng câu lệnh

$ deactivate

Tìm hiểu về pyenv để thiết lập môi trường ảo nhanh chóng

Pyenv là cách để bạn thiết lập nhanh chóng giữa các môi trường ảo hoặc sử dụng các phiên bản python khác nhau. Nếu bạn từng sử dụng rbenv trong ruby thì pyenv cũng được fork từ rbenv.

Sau đây là các bước để cài đặt và sử dụng rbenv

Di chuyển đến vị trí muốn cài pyenv: thông thường $HOME/.pyenv

$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv

Xác định biến môi trường Pyenv_root

$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile

$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile

Add pyenv init vào shell

$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

Restart shell của bạn

$ exec $SHELL

Cài môi trường phiên bản python bạn muốn sử dụng.VD 2.7.8

$ pyenv install 2.7.8

Bạn có thể cài nhiều phiên bản python. Set 1 phiên bản mặc định

pyenv global 2.7.8

Hoặc cục bộ ở 1 thư mục

pyenv local 3.4.3