Chi tiết các cài đặt và thiết lập môi trường ảo trong lập trình Python

Hello anh em Mì Ai, hôm nay chúng ta sẽ cùng nhau tìm hiểu xem môi trường ảo là gì và vì sao ta cần nó trong lập trình Python nhé.

Có một bạn trên group vướng phải một vấn đề khi lập trình và phải nói là bạn ấy siêu kiên trì khi cài lại Ubuntu tất cả là 10 lần trong 2 ngày :D. Mình tò mò mới hỏi thăm thì lý do vì bạn ấy cài đặt một số gói đặc biệt và mỗi khi cài đặt mà lỗi cái gói đó thì không thể nào undo ngoài cách cài lại Ubuntu từ đầu.

Do vậy để các bạn khác tránh bị các hiện tượng như vậy thì mình xin viết một bài chia sẻ về môi trường ảo nhé.

Phần 1 – Tìm hiểu về môi trường ảo

Các bạn cứ hình dung như này cho dễ này. Bình thường khi cài đặt các package (dùng pip ấy) thì nó sẽ ăn thẳng vào ngôi nhà, vào hệ điều hành (OS) và nếu có lỗi gì thì sẽ lỗi chung cho cả máy tính và….toang.

Còn bây giờ môi trường ảo thực ra tạo ra cho bạn một căn phòng riêng và bạn vào trong đó nghịch phá thoải mái, cài cắm vô tư và nếu có toang gì thì toang riêng cái phòng của bạn thôi. Nếu một phòng nào đó lỗi, bạn có thể remove cái phòng đó đi, tạo ra phòng mới để nghịch phá tiếp mà không ảnh hưởng gì đến ngồi nhà. Và cũng tất nhiên là bạn có thể tạo ra nhiều phòng song song để nghịch phá mỗi phòng 1 ít :D.

Mỗi căn phòng bạn có thể cài đặt các gói khác nhau, phiên bản python khác nhau, tensorflow khác nhau…..và chúng chả liên quan gì đến nhau cả!

môi trường ảo
Nguồn: Tại đây

Ví dụ với hình trên ta có hẳn 3 môi trường ảo/ 3 căn phòng khác nhau:

  • Phòng 1: Dùng python 2.7 và cài đặt các gói django 2.2 và celery 3.3
  • Phòng 2: Dùng python 3.5 và cài django 3.0 và celery 4.0
  • Phòng 3: Dùng python 3.8 với django 2.0 và celery 4.4

Rồi vậy chắc giò các bạn đã hiểu rồi đúng không, hạn chế tối đa việc cài thẳng gói vào hệ điều hành/ ngôi nhà. Hãy tạo ra các phòng riêng để nghịch cho thích, lỗi thì remove tạo lại (trong một nốt nhạc) chứ cài lại OS thì cực hình quá.

Bây giờ chúng ta hãy cùng tìm hiểu cách tạo môi trường ảo nhé!

Phần 2 – Tạo virtual env bằng cách “thủ công mỹ nghệ”

Trong phần này chúng ta cùng tìm cách cài môi trường ảo thủ công, có nghĩa là như kiểu ta xây các phòng từ đầu, từ những viên gạch đầu tiên.

Để làm được việc đó thì chúng ta cần phải cài đặt môi trường ảo bằng lệnh pip3 (chú ý ở đây mình không guide phần sử dụng Python 2.7 nữa nhé vì quá cũ rồi chắc không còn bạn nào sử dụng).

python3 -m pip install virtualenv

Trên Ubuntu có thể báo lỗi thì các bạn cài bằng lệnh

sudo apt-get install python3-virtualenvCode language: JavaScript (javascript)

Sau khi cài đặt lệnh này xong thì chúng ta sẽ có công cụ tạo môi trường ảo và bắt đầu tạo căn phòng/môi trường ảo đầu tiên. Giả sử môi trường đó có tên là “myenv” (môi trường của tôi):

python3 -m venv myenv

Ok! Chạy chong lệnh này sẽ thấy ở thư mục hiện tại xuất hiện thêm một thư mục myenv. Đó chính là thư mục chứa các gói, file chạy python của môi trường ảo myenv của bạn đó.

Bây giờ mở cửa vào phòng và nghịch phá thôi, haha! Thực ra là kích hoạt môi trường ảo lên bằng lệnh:

# Nếu là Ubuntu
source myenv/bin/activate
# Nếu là Window (phần này mình ko nhớ chính xác lắm do ko dùng window)
myenv\Scripts\Activate.batCode language: PHP (php)

Sau khi chạy xong các bạn sẽ thấy ở đầu dấu nhắc lệnh có thêm một dấu mở đóng ngoặc tên môi trường ảo như hình dưới đây:

môi trường ảo
Nguồn: Tại đây

Với hình trên thì tên môi trường ảo là project1 và đằng trước dấu nhắc d:\ có đoạn đóng mở ngoặc đó.

Bây giờ thì các bạn có thể tha hồ cài cắm bằng lệnh pip install quen thuộc rồi. Thích cài gì thì cài, thích cắm gì thì cắm và nếu lỗi thì chỉ cần xoá béng cái thư mục myenv đi và tạo lại là xong 😀

Nếu bạn muốn thoát khỏi môi trường ảo (để chuyển sang môi trường ảo khác hoặc không sử dụng nữa) thì gõ lệnh:

# Linux thì 
deactivate
# Window thì
myenv\Scripts\deactivateCode language: PHP (php)

Cũng không quá phức tạp đúng không các bạn? Tội quái gì phỉa cài vào OS để rồi cài lại cho mệt.

Phần 3 – Cài đặt sử dụng Anaconda

Với các bạn cài đặt máy tính để học tập thì Anaconda phải gọi là bá đạo, nó giúp chúng ta cài đặt nhanh chóng hơn, tiện lợi hơn.

Nói một cách khác, anaconda là các mẫu phòng có sẵn như: phòng khung cảnh nhật bản, phòng khung cảnh châu âu, phòng kiểu nhà tù, phòng kiểu resort….và các bạn chỉ cần lựa chọn tuỳ theo sở thích haha.

Đùa chút cho vui chứ thực ra là anaconda sẽ giúp ta tạo ra các môi trường với đầy đủ các thư viện cần thiết như: numpy, opencv, tensorflow… và chúng ta chỉ việc sử dụng mà thôi.

Để làm điều đó chúng ta phải cài đặt Anaconda theo hướng dẫn này. Mỗi hệ điều hành sẽ có cách cài khác nhau nhé.

Sau khi cài đặt xong thì các bạn có thể tạo môi trường ảo (giả sử tên là my_env) bằng lệnh:

conda create --name my_env python=3.X

Các bạn để ý cái đoạn 3.X kia kìa! Đó là chỗ các bạn dùng để chỉ định xem mình sẽ dùng phiên bản python nào cho môi trường ảo này. Ví dụ: 3.6, 3.7…

Sau khi tạo xong thì các bạn kích hoạt lên nào, vào phòng nào:

conda activate my_env

Và xong, chúng ta cũng thấy thêm đóng mở ngoặc ở trước dấu nhắc và bây giờ có thể quẩy , cài cắm vô tư các thứ ta thích rồi. nhé.

Để cài các bạn có thể dùng

# Cài qua conda
conda install <tên gói>
# Cài qua pip
pip install <tên gói>Code language: HTML, XML (xml)

Các cài đặt qua conda thì nó sẽ hỗ trợ thư viện chính và các thư viện phụ trợ xung quanh luôn còn cài qua pip thì thủ công, nghĩa là cài gì được nấy. Tuy nhiên có một số gói đặc thù không hỗ trợ cài qua conda thì các bạn phải pip nhé.

Đến khi dùng xong muốn thoát thì ta lại dùng lệnh:

conda deactivate

Nếu môi trường ảo bị lỗi muốn xoá đi thì :

conda remove --name my_env --all

Là ngay lập tức my_env sẽ bay về miền xa lắm và ta lại tạo món khác để xài.

OK! Tóm tắt một chút.

Tất cả đều khá đơn giản, không có gì phưc tạp những sẽ tránh những phiền toái và mang lại khá nhiều lợi ích như:

  • Thoải mái thử nghiệm mà không sợ phải cài lại OS, lỗi cái là cài lại được ngay.
  • Không xung đột thư viện giữa các project với nhau. Giả sử có 2 project A và B. A viết lâu rồi dùng thư viện cũ, B mới viết dùng thư viên cũ. Nếu ta không gắn cho A và B 2 môi trường ảo khác nhau thì cứ cài được thằng A thì chết thằng B và ngược lại.

Mình xin tạm biệt và hẹn gặp lại các bạn trong bài tiếp theo nhé.

Chúc các bạn thành công!

#MìAI

Fanpage: http://facebook.com/miaiblog
Group trao đổi, chia sẻ: https://www.facebook.com/groups/miaigroup
Website: https://miai.vn
Youtube: http://bit.ly/miaiyoutube

Related Post

6 Replies to “Chi tiết các cài đặt và thiết lập môi trường ảo trong lập trình Python”

Leave a Reply

Your email address will not be published. Required fields are marked *