Thứ tư, 28/11/2018 | 00:00 GMT+7

Cách thiết lập notebook Jupyter với Python 3 trên Ubuntu 18.04

Một ứng dụng web open-souce , Jupyter Notebook cho phép bạn tạo và chia sẻ mã tương tác, hình ảnh hóa, v.v. Công cụ này được dùng với một số ngôn ngữ lập trình, bao gồm Python, Julia, R, Haskell và Ruby. Nó thường được sử dụng để làm việc với dữ liệu, mô hình thống kê và học máy.

Hướng dẫn này sẽ hướng dẫn bạn cách cài đặt Jupyter Notebook để chạy từ server Ubuntu 18.04, cũng như hướng dẫn bạn cách kết nối và sử dụng sổ ghi chép. Notebook Jupyter (hay đơn giản là Sổ tay) là tài liệu được tạo bởi ứng dụng Notebook Jupyter chứa cả mã máy tính và các phần tử văn bản đa dạng thức (đoạn văn, phương trình, số liệu, liên kết, v.v.) hỗ trợ trình bày và chia sẻ nghiên cứu có thể tái tạo.

Đến cuối hướng dẫn này, bạn có thể chạy mã Python 3 bằng Notebook Jupyter chạy trên server từ xa.

Yêu cầu

Để hoàn thành hướng dẫn này, bạn phải có version server Ubuntu 18.04 mới với firewall cơ bản và user không phải root có quyền sudo được cấu hình . Bạn có thể tìm hiểu cách cài đặt điều này bằng cách chạy qua hướng dẫn cài đặt server ban đầu của ta .

Bước 1 - Cài đặt Python

Để bắt đầu quá trình, ta sẽ cài đặt các phụ thuộc ta cần cho môi trường lập trình Python của ta từ repository Ubuntu. Ubuntu 18.04 được cài đặt sẵn Python 3.6. Ta sẽ sử dụng pip trình quản lý gói Python để cài đặt các thành phần bổ sung sau một chút.

Trước tiên, ta cần cập nhật index gói apt local , sau đó download và cài đặt các gói:

  • sudo apt update

Tiếp theo, cài đặt pip và các file tiêu đề Python, được sử dụng bởi một số phụ thuộc của Jupyter:

  • sudo apt install python3-pip python3-dev

Bây giờ ta có thể chuyển sang cài đặt một môi trường ảo Python mà ta sẽ cài đặt Jupyter.

Bước 2 - Tạo môi trường ảo Python cho Jupyter

Bây giờ ta đã có Python 3, các file tiêu đề và pip của nó sẵn sàng hoạt động, ta có thể tạo một môi trường ảo Python để quản lý các dự án của bạn . Ta sẽ cài đặt Jupyter vào môi trường ảo này.

Để làm điều này, trước tiên ta cần truy cập vào lệnh virtualenv mà ta có thể cài đặt bằng pip.

Nâng cấp pip và cài đặt gói bằng lệnh :

  • sudo -H pip3 install --upgrade pip
  • sudo -H pip3 install virtualenv

Các -H Đảm bảo cờ rằng policy an ninh đặt home biến môi trường đến folder home của user mục tiêu.

Với virtualenv được cài đặt, ta có thể bắt đầu hình thành môi trường của bạn . Tạo và chuyển vào một folder nơi ta có thể giữ các file dự án của bạn . Ta sẽ gọi đây là my_project_dir , nhưng bạn nên sử dụng một cái tên có ý nghĩa đối với bạn và công việc bạn đang làm.

  • mkdir ~/my_project_dir
  • cd ~/my_project_dir

Trong folder dự án, ta sẽ tạo một môi trường ảo Python. Với mục đích của hướng dẫn này, ta sẽ gọi nó là my_project_env nhưng bạn nên gọi nó là cái gì đó có liên quan đến dự án của bạn.

  • virtualenv my_project_env

Thao tác này sẽ tạo một folder có tên my_project_env trong folder my_project_dir của bạn. Bên trong, nó sẽ cài đặt version local của Python và version local của pip. Ta có thể sử dụng điều này để cài đặt và cấu hình một môi trường Python riêng biệt cho Jupyter.

Trước khi cài đặt Jupyter, ta cần kích hoạt môi trường ảo. Bạn có thể thực hiện bằng cách gõ:

  • source my_project_env/bin/activate

Dấu nhắc của bạn sẽ thay đổi để cho biết rằng bạn hiện đang hoạt động trong môi trường ảo Python. Nó sẽ giống như thế này: ( my_project_env ) user @ host :~/ my_project_dir $ .

Đến đây bạn đã sẵn sàng cài đặt Jupyter vào môi trường ảo này.

Bước 3 - Cài đặt Jupyter

Với môi trường ảo của bạn đang hoạt động, hãy cài đặt Jupyter với version local của pip.

Lưu ý: Khi môi trường ảo được kích hoạt (khi dấu nhắc của bạn có (my_project_env) đứng trước nó), hãy sử dụng pip thay vì pip3 , ngay cả khi bạn đang sử dụng Python 3. Bản sao của công cụ trong môi trường ảo luôn được đặt tên là pip , dù Python version .

  • pip install jupyter

Đến đây, bạn đã cài đặt thành công tất cả các phần mềm cần thiết để chạy Jupyter. Bây giờ ta có thể khởi động server Notebook.

Bước 4 - Chạy Jupyter Notebook

Đến đây bạn có mọi thứ bạn cần để chạy Notebook Jupyter! Để chạy nó, hãy thực hiện lệnh sau:

  • jupyter notebook

Nhật ký các hoạt động của Notebook Jupyter sẽ được in ra terminal . Khi bạn chạy Jupyter Notebook, nó sẽ chạy trên một số cổng cụ thể. Notebook đầu tiên bạn chạy thường sẽ sử dụng cổng 8888 . Để kiểm tra số cổng cụ thể Jupyter Notebook đang chạy, hãy tham khảo kết quả của lệnh được sử dụng để khởi động nó:

Output
[I 21:23:21.198 NotebookApp] Writing notebook server cookie secret to /run/user/1001/jupyter/notebook_cookie_secret [I 21:23:21.361 NotebookApp] Serving notebooks from local directory: /home/sammy/my_project_dir [I 21:23:21.361 NotebookApp] The Jupyter Notebook is running at: [I 21:23:21.361 NotebookApp] http://localhost:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72 [I 21:23:21.361 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). [W 21:23:21.361 NotebookApp] No web browser found: could not locate runnable browser. [C 21:23:21.361 NotebookApp] Copy/paste this URL into your browser when you connect for the first time, to login with a token: http://localhost:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72

Nếu bạn đang chạy Jupyter Notebook trên một máy tính local (không phải trên server ), bạn có thể chuyển đến URL được hiển thị để kết nối với Jupyter Notebook. Nếu bạn đang chạy Jupyter Notebook trên server , bạn cần kết nối với server bằng cách sử dụng tunnel SSH như được nêu trong phần tiếp theo.

Đến đây, bạn có thể giữ kết nối SSH mở và tiếp tục chạy Notebook Jupyter hoặc bạn có thể thoát ứng dụng và chạy lại sau khi cài đặt tunnel SSH. Hãy chọn dừng quá trình Notebook Jupyter. Ta sẽ chạy lại nó khi ta đã cài đặt tunnel SSH. Để dừng quá trình Notebook Jupyter, hãy nhấn CTRL+C , nhập Y , rồi ENTER để xác nhận. Kết quả sau sẽ được hiển thị:

Output
[C 21:28:28.512 NotebookApp] Shutdown confirmed [I 21:28:28.512 NotebookApp] Shutting down 0 kernels

Bây giờ ta sẽ cài đặt một tunnel SSH để ta có thể truy cập vào Notebook.

Bước 5 - Kết nối với server bằng SSH Tunneling

Trong phần này, ta sẽ học cách kết nối với giao diện web Jupyter Notebook bằng cách sử dụng tunnel SSH. Vì Jupyter Notebook sẽ chạy trên một cổng cụ thể trên server (chẳng hạn như :8888 :8889 v.v.), tunnel SSH cho phép bạn kết nối an toàn với cổng của server .

Hai phần phụ tiếp theo mô tả cách tạo tunnel SSH từ 1) máy Mac hoặc Linux và 2) Windows. Vui lòng tham khảo phần phụ cho máy tính local của bạn.

SSH Tunneling với Mac hoặc Linux

Nếu bạn đang sử dụng máy Mac hoặc Linux, các bước để tạo tunnel SSH tương tự như sử dụng SSH để đăng nhập vào server từ xa của bạn, ngoại trừ việc có thêm các tham số trong lệnh ssh . Phần phụ này sẽ phác thảo các tham số bổ sung cần thiết trong lệnh ssh để tạo tunnel thành công.

SSH tunnel có thể được thực hiện bằng cách chạy lệnh SSH sau trong cửa sổ terminal local mới:

  • ssh -L 8888:localhost:8888 your_server_username@your_server_ip

Lệnh ssh mở một kết nối SSH, nhưng -L chỉ định rằng cổng nhất định trên server local (máy khách) sẽ được chuyển tiếp đến server lưu trữ nhất định và cổng ở phía từ xa ( server ). Điều này nghĩa là bất cứ thứ gì đang chạy trên số cổng thứ hai (ví dụ: 8888 ) trên server sẽ xuất hiện trên số cổng đầu tiên (ví dụ: 8888 ) trên máy tính local của bạn.

Tùy ý thay đổi cổng 8888 thành một trong những lựa chọn của bạn để tránh sử dụng một cổng đã được sử dụng bởi một quy trình khác.

server_username là tên user của bạn (ví dụ: sammy ) trên server mà bạn đã tạo và your_server_ip là địa chỉ IP của server của bạn.

Ví dụ: đối với tên user sammy và địa chỉ server 203.0.113.0 , lệnh sẽ là:

  • ssh -L 8888:localhost:8888 sammy@203.0.113.0

Nếu không có lỗi nào xuất hiện sau khi chạy lệnh ssh -L , bạn có thể chuyển vào môi trường lập trình của bạn và chạy Jupyter Notebook:

  • jupyter notebook

Bạn sẽ nhận được kết quả với một URL. Từ trình duyệt web trên máy local của bạn, hãy mở giao diện web Jupyter Notebook với URL bắt đầu bằng http://localhost:8888 . Đảm bảo rằng số mã thông báo được bao gồm hoặc nhập chuỗi số mã thông báo khi được yêu cầu tại http://localhost:8888 .

SSH Tunneling với Windows và Putty

Nếu bạn đang sử dụng Windows, bạn có thể tạo tunnel SSH bằng Putty .

Đầu tiên, nhập URL server hoặc địa chỉ IP làm tên server như được hiển thị:

Đặt tên  server  cho SSH Tunnel

Tiếp theo, nhấp vào SSH ở cuối ngăn bên trái để mở rộng menu, sau đó nhấp vào Đường hầm . Nhập số cổng local bạn muốn sử dụng để truy cập Jupyter trên máy local của bạn. Chọn 8000 trở lên để tránh các cổng được sử dụng bởi các dịch vụ khác và đặt đích là localhost: 8888 trong đó :8888 là số cổng mà Jupyter Notebook đang chạy.

Bây giờ hãy nhấp vào nút Thêm và các cổng sẽ xuất hiện trong danh sách Cổng được chuyển tiếp :

Danh sách các cổng được chuyển tiếp

Cuối cùng, nhấp vào nút Mở để kết nối với server thông qua SSH và tạo tunnel cho các cổng mong muốn. Điều hướng đến http://localhost: 8000 (hoặc bất kỳ cổng nào bạn chọn) trong trình duyệt web để kết nối với Notebook Jupyter đang chạy trên server . Đảm bảo rằng số mã thông báo được bao gồm hoặc nhập chuỗi số mã thông báo khi được yêu cầu tại http://localhost:8000 .

Bước 6 - Sử dụng Jupyter Notebook

Phần này đề cập đến những điều cơ bản của việc sử dụng Jupyter Notebook. Nếu bạn hiện không có Notebook Jupyter đang chạy, hãy khởi động bằng lệnh jupyter notebook .

Đến đây bạn sẽ được kết nối với nó bằng trình duyệt web. Jupyter Notebook là một công cụ rất mạnh mẽ với nhiều tính năng. Phần này sẽ trình bày một vài tính năng cơ bản để giúp bạn bắt đầu sử dụng Notebook. Jupyter Notebook sẽ hiển thị tất cả các file và folder trong folder mà nó được chạy, vì vậy khi bạn đang làm việc trên một dự án, hãy đảm bảo khởi động nó từ folder dự án.

Để tạo file Notebook mới, hãy chọn Mới > Python 3 từ trình đơn kéo xuống trên cùng bên phải:

Tạo sổ ghi chép Python 3 mới

Thao tác này sẽ mở một Notebook. Bây giờ ta có thể chạy mã Python trong ô hoặc thay đổi ô thành đánh dấu. Ví dụ, thay đổi tế bào đầu tiên chấp nhận Markdown bằng cách nhấn vào di động> Loại di động> Markdown từ thanh chuyển trên. Như vậy, ta có thể viết ghi chú bằng Markdown và thậm chí bao gồm các phương trình được viết bằng LaTeX bằng cách đặt chúng giữa các ký hiệu $$ . Ví dụ: nhập nội dung sau vào ô sau khi thay đổi thành đánh dấu:

# First Equation  Let us now implement the following equation: $$ y = x^2$$  where $x = 2$ 

Để chuyển dấu xuống thành văn bản có định dạng, hãy nhấn CTRL+ENTER và sau đây sẽ là kết quả:

kết quả đánh dấu

Bạn có thể sử dụng các ô đánh dấu để ghi chú và ghi lại mã của bạn . Hãy thực hiện phương trình đó và in kết quả. Bấm vào ô trên cùng, sau đó nhấn ALT+ENTER để thêm một ô bên dưới ô đó. Nhập mã sau vào ô mới.

x = 2 y = x**2 print(y) 

Để chạy mã, nhấn CTRL+ENTER . Bạn sẽ nhận được các kết quả sau:

kết quả phương trình đầu tiên

Đến đây bạn có khả năng nhập các module và sử dụng Notebook như bạn làm với bất kỳ môi trường phát triển Python nào khác!

Kết luận

Xin chúc mừng! Đến đây bạn có thể viết mã Python có thể tái tạo và ghi chú trong Markdown bằng Notebook Jupyter. Để tham quan nhanh Jupyter Notebook từ trong giao diện, hãy chọn Trợ giúp > Tham quan giao diện user từ menu chuyển trên cùng để tìm hiểu thêm.

Từ đây, bạn có thể bắt đầu dự án phân tích và trực quan hóa dữ liệu bằng cách đọc Phân tích và hình ảnh hóa dữ liệu với pandas và Notebook Jupyter trong Python 3 .

Nếu bạn muốn tìm hiểu thêm, bạn có thể đọc loạt bài của ta về Hình ảnh hóa và Dự báo chuỗi thời gian .


Tags:

Các tin liên quan

Cách thực hiện chuyển kiểu neural với Python 3 và PyTorch
2018-09-13
Cách thực hiện chuyển kiểu neural với Python 3 và PyTorch
2018-09-13
Cách cài đặt Python 3 và thiết lập môi trường lập trình cục bộ trên Windows 10
2018-09-11
Cách cài đặt Python 3 và thiết lập môi trường lập trình cục bộ trên Windows 10
2018-09-11
Cách thiết lập một sổ ghi chép Jupyter với Python 3 trên Debian 9
2018-09-07
Cách cài đặt phân phối Python Anaconda trên Debian 9
2018-09-06
Cách cài đặt Python 3 và thiết lập môi trường lập trình trên Debian 9
2018-09-04
Cách xác minh mã và mã hóa dữ liệu bằng Python-GnuPG và Python 3
2018-06-08
Kế thừa lớp trong Python 3
2018-03-09
Hiểu kế thừa lớp trong Python 3
2018-03-09