Featured

Mengupgrade pip setelah mengupgrade python3.8 di ubuntu 16.04

Setelah melakukan upgrade dari python 3.5 ke python 3.8 , baca : https://notes.its.ac.id/roy/2020/06/18/mengupgrade-ke-python-3-8-di-ubuntu-16-04/, maka problem berikutnya adalah terkadang pip3 tidak dapat dijalankan dengan baik.

Padahal pip3 adalah salah satu penyedia package terbanyak yang bisa kita gunakan untuk produktifitas kita dalam pemrograman python. banyak package library yang sangat berguna, seperti contohnya requests, docker, flask dan lain sebagainya

Untuk kasus ini yang perlu kita lakukan adalah

  1. Uninstall pip bawaan dari Ubuntu 16.04, dengan cara
    $ sudo apt remove python3-pip
  2. Dapatkan installer pip terbaru di pypa.io dengan cara
    $ sudo curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
  3. Jalankan file get-pip.py tersebut dengan cara
    $ sudo python3 get-pip.py
  4. Setelah selesai, maka pip akan terinstall, kita cek dengan cara
    $ pip -V
    pip 20.1.1 from /usr/local/lib/python3.8/dist-packages/pip (python 3.8)
  5. Agar lebih nyaman, perlu kita letakkan pip tersebut di /usr/bin, dengan cara
    $ cd /usr/bin
    $ ln -s /usr/local/bin/pip3.8 pip
    $ ln -s /usr/local/bin/pip3.8 pip3

Pada saat ini pip sudah seharusnya menggunakan yang terbaru (versi 20, pada saat tulisan ini dibuat)

Terima kasih

Menggunakan Python Embedded Web Server untuk mencoba kode HTML

Pada saat kita belajar menggunakan HTML untuk membuat website, terkadang kita tidak bisa langsung membuat file .html, meletakkannya di file system, kemudian mengisinya dengan kode HTML dan berikutnya menggunakan fasilitas file->open di browser untuk melihat hasilnya.

Pada saat berada di lingkungan production, ketika browser berada di tempat yang berbeda dengan object HTTP, tentu saja browser tidak bisa menggunakan cara yang sama ketika kita meletakkan object di file system

Oleh karena itu, kita memerlukan sebuah lingkungan development yang paling tidak mirip dengan lingkungan production, yaitu adanya http server atau yang lazim disebut dengan web server

Beberapa menilai bahwa instalasi web server membutuhkan waktu dan pengetahuan khusus. Hal itu memang benar adanya, jika digunakan untuk lingkungan production yang tujuannya untuk melayani request dalam jumlah yang besar. akan tetapi untuk development, kita bisa memanfaatkan web server yang tinggal pakai seperti yang dimiliki oleh bahasa python.

Hal ini akan sangat berguna misalkan kita menjumpai sepotong kode html dan kita ingin mencobanya, maka kita bisa langsung gunakan dan melihat hasilnya seperti ketika kita gunakan lingkungan production

python memiliki modul yang bernama http.server yang siap digunakan kapan saja, bahkan ketika kita tidak paham python pun kita dapat menggunakannya

Dalam contoh ini, saya menggunakan linux sebagai lingkungan development saya untuk membuat sebuah halaman .html

Sebagai contoh, saya mempunyai halaman html, dengan nama file index.html seperti berikut ini

<DOCTYPE html>
<BODY>
<h1> Hello </h1>
Hello, saya belajar HTML code disini
</BODY>

setelah itu buatlah sebuah direktori/folder , saya akan gunakan home directory saya untuk keperluan ini, nantinya lingkungan development adalah di directory belajar_html

$ mkdir belajar_html
$ cd belajar_html

kita cek directory dimana kita berada

$ pwd
/home/royyana/belajar_html

saat ini kita sudah berada di dalam directory belajar_html, copykan file index.html ke dalam directory ini. setelah index.html berada di directory ini, maka struktur nya akan seperti ini

$ tree
.
└── index.html

kita lihat hanya satu file index.html

Berikutnya kita jalankan webserver dengan satu command line saja, yaitu

$ python3 -m http.server

akan memunculkan bahwa kita sudah menjalankan http server di port 8000

$ python3 -m http.server
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) …

port 8000 merupakan port default yang bisa kita ganti dengan port berapapun yang kita inginkan. saran saya gunakan port diatas 1024. misalkan, kita gunakan port 8899, caranya adalah

$ python3 -m http.server 8899
Serving HTTP on 0.0.0.0 port 8899 (http://0.0.0.0:8899/) …

pada saat ini webserver sudah siap menerima request dari browser. dalam hal ini kita akan menggunakan browser chrome untuk mengakses halaman index.html yang berada di server di port 8899

akseslah url http://localhost:8899/index.html dengan browser chrome, kita lihat di sisi server akan memperlihatkan rekaman akses dari browser

$ python3 -m http.server 8899
Serving HTTP on 0.0.0.0 port 8899 (http://0.0.0.0:8899/) …
127.0.0.1 - - [18/Jun/2020 22:19:05] "GET /index.html HTTP/1.1" 200 -
127.0.0.1 - - [18/Jun/2020 22:19:07] "GET /index.html HTTP/1.1" 304 -
127.0.0.1 - - [18/Jun/2020 22:19:25] "GET /index.html HTTP/1.1" 304 -

chrome browser akan menunjukkan

gambar chrome browser mengakses ke python web server di port 8899 untuk meminta object index.html

Kita bisa menambahkan file file html yang lain di directory yang sama dan mengaksesnya dengan cara yang sama dengan index.html ini

Posting ini telah membahas bagaimana menggunakan python builtin web server untuk menyediakan lingkungan cepat dalam mencoba-coba kode html

Mengupgrade ke Python 3.8 di Ubuntu 16.04

Pendahuluan

Pada suatu ketika, saya ingin menggunakan python versi 3.5 keatas dalam sebuah ubuntu. ketika saya masuk ke console, saya menjumpai bahwa ubuntu ini adalah ubuntu 16.04 yang mana versi builtin python3 nya adalah 3.5. Beberapa kasus mengharuskan kita untuk menggunakan python 3.5 keatas.

cek versi python3 yang sedang berjalan

~/o365_gw# python3 -V
Python 3.5.2

Mengupgrade Python

untuk mengupgrade ke versi python setelah 3.5 perlu kita lakukan beberapa instalasi pendahuluan. tujuan kita adalah menginstall python versi 3.8

$ sudo apt update

$ sudo apt install software-properties-common python-software-properties

dan kita akan menggunakan metode ppa dari deadsnakes

$ sudo add-apt-repository ppa:deadsnakes/ppa

setelah itu akan muncul beberapa informasi pendahuluan tentang Ubuntu dan versi python yang disupport. pada saat tulisan ini dibuat, terakhir yang bisa disupport adalah python 3.9 untuk ubuntu 16.04

  • Ubuntu 16.04 (xenial) Python 2.3 - Python 2.6, Python 3.1 - Python3.4, Python 3.6 - Python3.9
  • Ubuntu 18.04 (bionic) Python2.3 - Python 2.6, Python 3.1 - Python 3.5, Python3.7 - Python3.9
  • Ubuntu 20.04 (focal) Python3.5 - Python3.7, Python3.9
  • Note: Python2.7 (all), Python 3.5 (xenial), Python 3.6 (bionic), Python 3.8 (focal) are not provided by deadsnakes as upstream ubuntu p
    rovides those packages.
  • Note: for focal, older python versions require libssl1.0.x so they are not currently built

Setelah selesai, maka kita lanjutkan menginstall python 3.9

$ sudo apt install python-3.8

mari kita cek versi dari python3.8 yang sudah terinstall

$ python3.8 -V

pada saat ini, binary python3 masih mengarah ke python versi 3.5 yang lama. untuk memastikan

$ sudo which python3
/usr/bin/python3
$ sudo ls -la /usr/bin/python3
lrwxrwxrwx 1 root root 9 Apr 23 14:06 /usr/bin/python3 -> python3.5

Kita perlu memindahkan, agar python3 menuju ke versi python 3.8 yang barusan kita install

$ cd /usr/bin && sudo rm -f python3 && sudo ln -s python3.8 python3

Setelah menjalankan ini, kita cek binary /usr/bin/python3 apakah sudah mengarah ke python 3.8 atau belum

$ python3 -V
Python 3.8.3

atau jalankan langsung python REPL

$ python3
Python 3.8.3 (default, May 14 2020, 22:09:32)
[GCC 5.4.0 20160609] on linux

Pada saat ini python 3 yang kita gunakan sudah menggunakan python3.8.

Kesimpulan

Tulisan ini telah membahas bagaimana cara mengupgrade versi python di ubuntu 16.04 yang menggunakan versi default 3.5 menjadi versi 3.8 dengan menggunakan metode PPA