# Một vài điều cơ bản về thiết lập môi trường
### Về Anaconda
Nếu các bạn vẫn nhớ lúc code C++ trong nhập môn lập trình, tụi mình include các thư viện (ví dụ như ``` #include<stdio.h>``` hay ```#include<string>```) và các thư viện đó cũng đã được tích hợp sẵn với trình biên dịch rồi nên không phải lo. Tuy nhiên lần này chúng ta sẽ dùng các thư viện bên thứ ba. Thư viện bên thứ ba là gì? Chà, nói ngắn gọn thì có thể hiểu đó là mã nguồn được một bên khác phát triển, họ đóng gói và phân phối cho chúng ta có thể sử dụng, do đó các thư viện đó sẽ không được tích hợp sẵn mà yêu cầu phải tải về.
Anaconda là một trình quản lý gói, các bạn có thể hiểu thế này, mỗi project cần một môi trường riêng, ví dụ project A cần python=3.7, tensorflow=1.x, trong khi đó project B lại cần python=3.9, tensorflow=2.x, tập hợp các gói được project đó yêu cầu để có thể hoạt động được gọi là môi trường. Nếu các bạn cứ thế mà cài đặt vào máy các phiên bản trên thì chắc chắn sẽ gây xung đột giữa các phiên bản với nhau, do đó Annaconda được tạo ra để giúp chúng ta thuận tiện quản lý các môi trường này để chúng có thể được cài đặt và sử dụng một cách độc lập với nhau.
À nếu các bạn hỏi tại sao không cứ tải version mới nhất về mà dùng thì không may mắn là các thư viện mà chúng ta sẽ dùng không hỗ trợ tương thích ngược, tức là phiên bản cao hơn có thể có nhiều thay đổi (ví dụ như thay đổi cú pháp, thêm bớt các hàm và các attributes).
Các bạn có thể tham khảo cách tải Anaconda trên mạng, có rất nhiều, sau khi cài đặt xong và mở lên thì Annaconda có giao diện như thế này :

### Sử dụng Anaconda
Đầu tiên các bạn vào phần search của window và tìm Annaconda prompt

Cái này kiểu như một cái terminal để các bạn gõ command line vậy á, ta cần cái này để thực hiện một vài thao tác, giao diện của nó cũng giống cmd :

Để mình giải thích vài thứ, đầu tiên là Annaconda sẽ cung cấp cho các bạn một môi trường mặc định, gọi là base, các bạn có thể nhìn thấy nó ở giao diện đồ hoạ như hình bên dưới

hoặc trong prompt cũng sẽ hiển thị tên môi trường nằm ở phía trước và trong cặp dấu ngoặc đơn

Cơ mà chúng ta sẽ không dùng cái môi trường base này mà sẽ tạo riêng một môi trường để dùng cho project.
Cú pháp để tạo môi trường là
```python
conda create --name myenv python=3.7 -y
```
Giải thích :
* ```myenv ``` tên bạn đặt cho môi trường đó, bạn có thể đổi thành bất kì thứ gì bạn thích, miễn là tên không chứa khoảng trắng.
* python=3.7 : sử dụng phiên bản python 3.7, nếu bạn bỏ đối số này thì nó sẽ mặc định phiên bản python mới nhất, tuy nhiên không nên làm thế vì phiên bản mới nhất đôi khi sẽ gây ra lỗi vì xung đột với các package khác.
* -y : thường thì khi bạn request tạo một môi trường, prompt nó sẽ list ra các pakage cần tải và yêu cầu bạn xác nhận nó bằng cách gõ y và Enter, tuy nhiên để skip cho nó tiện thì bạn thêm cờ -y vào là được.
Mình sẽ gõ lệnh trên vào prompt và nhấn Enter, sau khi chạy xong nó sẽ trông như thế này :

Bạn để ý nó sẽ có 2 dòng thông báo đặc biệt là 2 prompt :
```
conda activate myenv
conda deactivate
```
Với ```conda activate myenv```, bạn sẽ yêu cầu sử dụng môi trường myenv thay vì base

Như bạn thấy thì khi gõ lệnh ```conda activate myenv```, môi trường của mình đã được trở thành myenv thay vì base như trước.
Với ```conda deactivate```, bạn sẽ quay về dùng môi trường base :

### Sử dụng giao diện đồ hoạ
Prompt ở trên thì mình chủ yếu dùng để tạo môi trường mới thôi, hoặc các bạn không thích thì tạo hẳn luôn trong terminal của vscode cũng được (cái này nói sau). Sau khi tạo môi trường thì bật GUI lên. Các bạn cần refresh lại để Anaconda nó cập nhật thêm môi trường vừa tạo nha, bấm vào cái nút như bên dưới :

Sau đó bấm vào danh sách các môi trường, các bạn sẽ thấy được myenv đã được list vào (trong hình bên dưới thì có thêm vài môi trường khác của mình, các bạn đừng để ý).

Bấm vào myenv để Anaconda kích hoạt môi trường của mình nha :

Lúc này Launch vscode thì các bạn đã sử dụng môi trường vừa được tạo rồi đó! Tất nhiên sẽ còn vài thao tác cài đặt thêm các gói cần thiết nữa, tuy nhiên cái đấy rất dễ và mình sẽ hướng dẫn sau.