# Cài đặt môi trường lập trình

{% hint style="info" %}
Chương này sẽ hướng dẫn cách cài đặt môi trường lập trình Flask-RESTful để người đọc dễ tương tác trong các bài hướng dẫn tiếp theo. Để hoàn thành ài hướng dẫn này, người đọc cần có một số kiến thức cơ bản về cài đặt phần mềm trên máy tính, và biết cách thực thi các lệnh trên môi trường Command Line (CMD) hoặc Terminal.
{% endhint %}

***

## Cài đặt Virtual Environments (Môi trường ảo)

Virtual Environments (môi trường ảo) là một công cụ quan trọng trong lập trình, đặc biệt là khi làm việc với Python hoặc bất kỳ ngôn ngữ lập trình nào khác. Sử dụng Virtual Environments là một thực tiễn tốt trong quá trình phát triển phần mềm, giúp tăng tính ổn định, linh hoạt và quản lý dự án hiệu quả. Bảng dưới đây trình bày một số tính năng khi sử dụng Virtual Environments.

| Tính năng                      | Mô tả                                                                                                                                                                                                                                                                                    |
| ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Môi trường lập trình tách biệt | <ul><li>Tạo ra một không gian làm việc riêng biệt, độc lập với các thư viện và dependencies khác.</li><li>Ngăn chặn xung đột giữa các phiên bản thư viện khác nhau khi làm việc với các dự án khác nhau.</li></ul>                                                                       |
| Quản lý Dependencies           | <ul><li>Cho phép cài đặt và quản lý phiên bản của thư viện, package, và modules riêng biệt cho từng dự án mà không ảnh hưởng đến hệ thống chung.</li><li>Dễ dàng xác định và ghi nhớ các phiên bản cụ thể của dependencies để đảm bảo sự nhất quán trong môi trường lập trình.</li></ul> |
| Tăng tính linh hoạt            | <ul><li>Cho phép thử nghiệm và cài đặt các phiên bản khác nhau của Python mà không làm ảnh hưởng đến hệ thống chính.</li><li>Điều này đặc biệt hữu ích khi cần làm việc với các phiên bản Python cũ hơn hoặc mới hơn.</li></ul>                                                          |
| Lập trình và kiểm thử          | <ul><li>Hỗ trợ việc phát triển và kiểm thử ở cấp độ project một cách độc lập.</li><li>Dễ dàng chuyển giao mã nguồn giữa các môi trường khác nhau mà không gặp phải vấn đề liên quan đến dependencies.</li></ul>                                                                          |

Hiện tại có nhiều công cụ hỗ trợ tạo môi trường ảo để làm việc với ngôn ngữ lập trình Python, chẳng hạn, [venv](https://docs.python.org/3/library/venv.html), [virtualenv](https://virtualenv.pypa.io/en/latest/), [virtualenvwrapper](https://virtualenvwrapper.readthedocs.io/en/latest/), [Anaconda](https://www.anaconda.com/). Trong bài hướng dẫn này, chúng tôi sẽ sử dụng **virtualenvwrapper** là công cụ tương tác với môi trường ảo.

Trường hợp sử dụng hệ điều hành Microsoft Windows (Windows XP, Windows Vista, Windows 7/8/10/11), người đọc cài đặt [virtualenvwrapper-win](https://pypi.org/project/virtualenvwrapper-win/), theo lệnh cài đặt bên dưới. Yêu cầu hệ thống tối thiểu phải có [Python 3](https://www.python.org/downloads/). Cần lưu ý rằng *virtualenvwrapper-win* chỉ hoạt động tốt trên Command Line (CMD) mặc định của hệ điều hành, và chưa hỗ trợ Powershell (tính đến 30/11/2023).

```
pip install virtualenvwrapper-win
```

Trường hợp sử dụng hệ điều hành Apple macOS (bao gồm cả máy Mac sử dụng chip Intel và chip Apple Silicon), chúng tôi khuyến khích cài đặt [Homebrew](https://brew.sh/) (nền tảng quản lý packages) trước, và sau đó cài đặt [virtualenvwrapper](https://formulae.brew.sh/formula/virtualenvwrapper).

```
brew install virtualenvwrapper
```

Sau khi cài đặt môi trường ảo, người đọc có thể tạo môi trường ảo bằng lệnh `mkvirtualenv <env_name>`, trong đó, `env1` là tên môi trường ảo. Lệnh `workon <env_name>` dùng để kích hoạt một môi trường ảo cụ thể, và lệnh `deactivate` để thoát môi trường ảo đang được kích hoạt. Một số lệnh thao tác cơ bản trên **virtualenvwrapper**:

```
mkvirtualenv env1
workon env1
deactivate
```

## Cài đặt Flask và Flask-RESTful

Quá trình cài đặt Flask và Flask-RESTful được thực hiện đơn giản thông qua hai lệnh cài đặt như sau:

```
pip install Flask
pip install flask-restful
```

## Công cụ lập trình (IDE)

Chúng tôi khuyến khích sử dụng các công cụ lập trình sau (theo thứ tự từ cơ bản đến chuyên nghiệp). Xin lưu ý rằng các công cụ lập trình chuyên nghiệp thường sẽ có tính phí, người đọc nên cân nhắc trước khi sử dụng.

* [Microsoft Visual Studio Code](https://code.visualstudio.com/)
* [PyCharm by JetBrains](https://www.jetbrains.com/pycharm/)
