Thứ tư, 15/06/2016 | 00:00 GMT+7

Cách thiết lập notebook Jupyter để chạy IPython trên Ubuntu 16.04

IPython là một giao diện dòng lệnh tương tác với Python. Jupyter Notebook cung cấp giao diện web tương tác với nhiều ngôn ngữ, bao gồm cả IPython.

Bài viết này sẽ hướng dẫn bạn cách cài đặt server để chạy Jupyter Notebook cũng như hướng dẫn bạn cách kết nối và sử dụng sổ ghi chép. Sổ tay Jupyter (hoặc đơn giản là sổ ghi chép) là tài liệu được tạo bởi ứng dụng Sổ tay Jupyter chứa cả mã máy tính (ví dụ: Python) 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 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 2.7 bằng Ipython và Jupyter Notebook chạy trên server từ xa. Với mục đích của hướng dẫn này, Python 2 (2.7.x) được sử dụng vì nhiều thư viện khoa học dữ liệu, máy tính khoa học và máy tính hiệu suất cao hỗ trợ 2.7 chứ không phải 3.0+.

Yêu cầu

Để làm theo hướng dẫn này, bạn cần những thứ sau:

Tất cả các lệnh trong hướng dẫn này phải được chạy với quyền user không phải root. Nếu cần có quyền truy cập root cho lệnh, nó sẽ được đặt trước sudo . Cài đặt server ban đầu với Ubuntu 16.04 giải thích cách thêm user và cấp cho họ quyền truy cập sudo.

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

Trong phần này ta sẽ cài đặt Python 2.7 và Pip.

Đầu tiên, hãy cập nhật index gói của hệ thống. Điều này sẽ đảm bảo các gói cũ hoặc lỗi thời không can thiệp vào quá trình cài đặt.

  • sudo apt-get update

Tiếp theo, cài đặt Python 2.7, Python Pip và Python Development:

  • sudo apt-get -y install python2.7 python-pip python-dev

Cài đặt python2.7 sẽ cập nhật lên version mới nhất của Python 2.7 và python-pip sẽ cài đặt Pip cho phép ta quản lý các gói Python mà ta muốn sử dụng. Một số phụ thuộc của Jupyter có thể yêu cầu biên dịch, trong trường hợp đó, bạn cần khả năng biên dịch các phần mở rộng Python C, vì vậy ta cũng đang cài đặt python-dev .

Để xác minh bạn đã cài đặt python:

  • python --version

Điều này sẽ xuất ra:

Output
Python 2.7.11+

Tùy thuộc vào version mới nhất của Python 2.7, kết quả có thể khác nhau.

Bạn cũng có thể kiểm tra xem pip đã được cài đặt hay chưa bằng lệnh sau:

  • pip --version

Bạn nên một cái gì đó tương tự như sau:

Output
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

Tương tự, tùy thuộc vào version pip của bạn, kết quả có thể hơi khác một chút.

Bước 2 - Cài đặt Ipython và Jupyter Notebook

Trong phần này, ta sẽ cài đặt Ipython và Jupyter Notebook.

Đầu tiên, cài đặt Ipython:

  • sudo apt-get -y install ipython ipython-notebook

Bây giờ ta có thể chuyển sang cài đặt Jupyter Notebook:

  • sudo -H pip install jupyter

Tùy thuộc vào version pip có trong repository lưu trữ apt-get của Ubuntu, bạn có thể gặp lỗi sau khi cố gắng cài đặt Jupyter:

Output
You are using pip version 8.1.1, however version 8.1.2 is available. You should consider upgrading via the 'pip install --upgrade pip' command.

Nếu vậy, bạn có thể sử dụng pip để nâng cấp pip lên version mới nhất:

  • sudo -H pip install --upgrade pip

Nâng cấp pip, rồi thử cài đặt lại Jupyter:

  • sudo -H pip install jupyter

Bước 3 - Chạy Notebook Jupyter

Đế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

Nếu bạn đang chạy Jupyter trên một hệ thống có cài đặt JavaScript, nó sẽ vẫn chạy, nhưng có thể gây ra lỗi cho bạn biết rằng Notebook Jupyter yêu cầu JavaScript:

Output
Jupyter Notebook requires JavaScript. Please enable it to proceed. ...

Để bỏ qua lỗi, bạn có thể nhấn Q rồi nhấn Y để xác nhận.

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 đang chạy thường sẽ chạy trên 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 NotebookApp] Serving notebooks from local directory: /home/sammy [I NotebookApp] 0 active kernels [I NotebookApp] The Jupyter Notebook is running at: http://localhost:8888/ [I NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).

Nếu bạn đang chạy Jupyter Notebook trên máy tính Linux local (không phải trên Server), bạn chỉ cần chuyển đến localhost :8888 để kết nối với Jupyter Notebook. Nếu bạn đang chạy Notebook Jupyter 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 có thể thoát ứng dụng và chạy lại sau khi bạn cài đặt tunnel SSH. Hãy đơn giản hóa và dừng quá trình Jupyter Notebook. Ta sẽ chạy lại nó khi ta có tunnel SSH hoạt động. Để dừng quá trình Notebook Jupyter, hãy nhấn CTRL+C , nhập Y và nhấn ENTER để xác nhận. Thông tin sau sẽ được hiển thị:

Output
[C 12:32:23.792 NotebookApp] Shutdown confirmed [I 12:32:23.794 NotebookApp] Shutting down kernels

Bước 4 - 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ì Notebook Jupyter đang 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) 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 Mac hoặc Linux, các bước để tạo tunnel SSH tương tự như Hướng dẫn Cách sử dụng Khóa SSH với DigitalOcean Server sử dụng Linux hoặc Mac, ngoại trừ có các tham số bổ sung được thêm vào 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.

Việc đào tunnel SSH có thể được thực hiện bằng cách chạy lệnh SSH sau:

  • ssh -L 8000: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) phải được chuyển tiếp đến server đã cho và cổng ở phía từ xa (Server). Điều này nghĩa là bất kỳ thứ gì đang chạy trên số cổng thứ hai (tức là 8888 ) trên Server sẽ xuất hiện trên số cổng đầu tiên (tức là 8000 ) trên máy tính local của bạn. Bạn nên thay đổi 8888 thành cổng mà Notebook Jupyter đang chạy. Tùy ý thay đổi cổng 8000 thành một trong những lựa chọn của bạn (ví dụ: nếu 8000 được sử dụng bởi một quy trình khác). Sử dụng một cổng lớn hơn hoặc bằng 8000 (tức là 8001 , 8002 , v.v.) để 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 (tức là sammy) trên Server mà bạn đã tạo và your_server_ip là địa chỉ IP của Server. Ví dụ: đối với tên user sammy và địa chỉ server 111.111.111.111 , lệnh sẽ là:

  • ssh -L 8000:localhost:8888 sammy@111.111.111.111

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ể chạy Jupyter Notebook:

  • jupyter notebook

Bây giờ, 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 http://localhost: 8000 (hoặc bất kỳ số cổng nào bạn chọn).

SSH Tunneling với Windows và Putty

Nếu bạn đang sử dụng Windows, bạn cũng có thể dễ dàng tạo tunnel SSH bằng Putty như được nêu trong Cách sử dụng SSH key với PuTTY trên DigitalOcean Server ( user Windows) .

Đầ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 để sử dụng để truy cập Jupyter trên máy local của bạn. Chọn 8000 trở lên (tức là 8001 , 8002 , v.v.) để 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 .

Bước 5 - 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 đây, bạn sẽ có Notebook Jupyter đang chạy và bạn sẽ được kết nối với nó bằng trình duyệt web. Jupyter Notebook rất mạnh mẽ và có nhiều tính năng. Phần này sẽ phác thảo một vài tính năng cơ bản để bạn bắt đầu sử dụng sổ ghi chép. Tự động, Jupyter Notebook sẽ hiển thị tất cả các file và folder trong folder mà nó chạy.

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

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

Thao tác này sẽ mở một sổ ghi chép. 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:

# Simple 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 đơn giản đó và in kết quả. Chọn Chèn > Chèn Ô Bên dưới để chèn ô và nhập mã sau:

x = 2 y = x*x print y 

Để chạy mã, nhấn CTRL+ENTER . Sau đây là kết quả:

kết quả phương trình đơn giản

Đến đây bạn có khả năng bao gồm các thư viện và sử dụng sổ ghi chép 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 sẽ có thể viết mã Python và ghi chú có thể tái tạo bằng cách sử dụng đánh dấu bằng cách sử dụng sổ ghi chép Jupyter chạy trên Server. Để xem nhanh sổ ghi chép Jupyter, hãy chọn Trợ giúp > Tham quan Giao diện User từ menu chuyển trên cùng.


Tags:

Các tin liên quan

Cách cài đặt Go 1.6 trên Ubuntu 16.04
2016-05-19
Cách cài đặt và sử dụng Composer trên Ubuntu 16.04
2016-05-17
Cách tập trung log với Rsyslog, Logstash và Elasticsearch trên Ubuntu 14.04
2016-05-16
Cách cài đặt và cấu hình Elasticsearch trên Ubuntu 16.04
2016-05-04
Cách cài đặt và cấu hình VNC trên Ubuntu 16.04
2016-04-26
Cách thêm không gian swap trên Ubuntu 16.04
2016-04-25
Cách cài đặt WordPress với LEMP trên Ubuntu 16.04
2016-04-25
Cách cài đặt Java với Apt-Get trên Ubuntu 16.04
2016-04-23
Cách cài đặt WordPress với LAMP trên Ubuntu 16.04
2016-04-22
Cách thêm và xóa người dùng trên Ubuntu 16.04
2016-04-21