Giới thiệu Virtual Environment trong Python

x-post from kipalog.com

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

Virtual Environment dịch nôm na là môi trường ảo :D 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 đã.

<span class="hljs-variable">$ </span>pip install virtualenv

Tạo Virtual Environment

<span class="hljs-variable">$ </span>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
.<span class="hljs-regexp">/lib/</span>python2<span class="hljs-number">.6</span>
.<span class="hljs-regexp">/lib/</span>python2<span class="hljs-number">.6</span>/site-packages
.<span class="hljs-regexp">/lib/</span>python2<span class="hljs-number">.6</span>/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 <span class="hljs-regexp">/usr/</span>bin/python2<span class="hljs-number">.7</span> [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:

<span class="hljs-title">virtualenv</span> --<span class="hljs-built_in">no</span>-site-packages [project_name]

Sử dụng Virtual Environment

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

$ <span class="hljs-keyword">source</span> [project_name]<span class="hljs-regexp">/bin/</span>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

<span class="hljs-variable">$ </span>deactivate

Tham khảo

http://docs.python-guide.org/en/latest/dev/virtualenvs/