Jupyter Notebook’u Ubuntu 22.04 Üzerinde Python 3 İçin Kurulum Rehberi
Jupyter Notebook, veri bilimi, makine öğrenimi ve interaktif hesaplama alanlarında çalışan geliştiriciler ve araştırmacılar için vazgeçilmez bir araçtır. Kodları, görselleri, metinleri ve denklemleri tek bir belge içinde birleştiren, web tabanlı, etkileşimli bir geliştirme ortamı sunar. Bu makalede, Ubuntu 22.04 işletim sistemi üzerinde Python 3 için Jupyter Notebook’u adım adım nasıl kuracağınızı ve yapılandıracağınızı detaylı bir şekilde açıklayacağız.
Giriş: Jupyter Notebook Neden Önemli?
Jupyter Notebook, özellikle veri analizi ve bilimsel hesaplama alanlarında sağladığı esneklik ve interaktiflik sayesinde büyük popülerlik kazanmıştır. Bir Jupyter Notebook belgesi (genellikle .ipynb uzantılı), canlı kod, denklemler, görselleştirmeler ve açıklayıcı metinler içerebilir. Bu özellikler, karmaşık veri analizlerini adım adım açıklamak, sonuçları anında görselleştirmek ve başkalarıyla kolayca paylaşmak için ideal bir platform sunar.
Python 3, modern veri bilimi ve makine öğrenimi projelerinin temelini oluşturur. Ubuntu 22.04 ise kararlı, güvenli ve yaygın olarak kullanılan bir Linux dağıtımıdır. Bu üçlünün birleşimi, güçlü ve verimli bir geliştirme ortamı oluşturur. Bu rehber, sıfırdan başlayarak sorunsuz bir kurulum süreci sağlamayı hedeflemektedir.
Ön Koşullar
Bu rehbere başlamadan önce, aşağıdaki temel gereksinimlere sahip olduğunuzdan emin olun:
* Ubuntu 22.04 İşletim Sistemi: Kurulum için aktif bir Ubuntu 22.04 masaüstü veya sunucu sürümü.
* Temel Terminal Bilgisi: Komut satırı arayüzünü (terminal) kullanmaya aşina olmak.
* İnternet Bağlantısı: Gerekli paketleri indirmek için aktif bir internet bağlantısı.
* sudo Yetkileri: Sistem genelinde değişiklikler yapmak için yönetici (sudo) yetkilerine sahip bir kullanıcı hesabı.
Sistem Güncelleme ve Temel Paketlerin Kurulumu
Herhangi bir yazılım kurulumuna başlamadan önce, sisteminizin güncel olduğundan ve gerekli temel geliştirme araçlarına sahip olduğundan emin olmak iyi bir uygulamadır. Bu, potansiyel uyumluluk sorunlarını önler ve en son güvenlik yamalarını almanızı sağlar.
Sistemi Güncelleme
Terminali açın (Ctrl+Alt+T) ve aşağıdaki komutları çalıştırın:
sudo apt update
sudo apt upgrade -y
* sudo apt update: Paket listelerini günceller. Bu, sisteminizin mevcut en yeni paket sürümlerini bilmesini sağlar.
* sudo apt upgrade -y: Yüklenmiş tüm paketleri en yeni sürümlerine yükseltir. -y bayrağı, tüm onay sorularına otomatik olarak “evet” yanıtı verir.
Temel Geliştirme Araçlarını Kurma
Jupyter Notebook ve Python sanal ortamları için gerekli olabilecek bazı temel araçları kuralım:
sudo apt install build-essential software-properties-common apt-transport-https ca-certificates curl git -y
* build-essential: Derleme için gerekli olan GCC, G++ ve make gibi temel araçları içerir. Bazı Python paketlerinin derlenmesi gerekebilir.
* Diğer paketler, çeşitli yazılımların kurulumu ve yönetimi için genel olarak faydalıdır.
Python 3 Kurulumu ve Yönetimi
Ubuntu 22.04, varsayılan olarak Python 3 ile birlikte gelir. Ancak, en iyi uygulama, projeleriniz için Python sanal ortamlarını kullanmaktır. Bu, bağımlılık çakışmalarını önler ve projelerinizin birbirinden izole olmasını sağlar.
Python Sürümünü Kontrol Etme
Sisteminizde yüklü olan Python 3 sürümünü kontrol etmek için:
python3 --version
Genellikle Ubuntu 22.04 üzerinde Python 3.10 veya daha yeni bir sürüm yüklü olacaktır.
PIP Kurulumu
PIP, Python paketlerini yüklemek ve yönetmek için kullanılan standart paket yöneticisidir. Eğer sisteminizde kurulu değilse, aşağıdaki komutla kurabilirsiniz:
sudo apt install python3-pip -y
Bu komut, Python 3 için pip‘i sistem genelinde kullanılabilir hale getirir.
Sanal Ortamlar (Virtual Environments) Kullanımı
Sanal ortamlar, her projenin kendi izole edilmiş bağımlılık setine sahip olmasını sağlayarak Python geliştirme dünyasında olmazsa olmaz bir uygulamadır. Bu, farklı projelerin farklı Python paket sürümlerine ihtiyaç duyması durumunda çakışmaları önler.
Neden Sanal Ortam Kullanmalıyız?
* İzolasyon: Her projenin kendi bağımlılık setine sahip olmasını sağlar.
* Çakışma Önleme: Farklı projelerin aynı paketin farklı sürümlerine ihtiyaç duyması durumunda ortaya çıkan sorunları giderir.
* Temizlik: Sistem genelindeki Python kurulumunu temiz tutar.
* Paylaşım: Projeyi başkalarıyla paylaşırken, gerekli tüm bağımlılıkları requirements.txt dosyası aracılığıyla kolayca listeleyebilirsiniz.
Sanal Ortam Oluşturma ve Etkinleştirme
Öncelikle, sanal ortamları oluşturmak için gerekli olan venv modülünün kurulu olduğundan emin olun:
sudo apt install python3-venv -y
Şimdi, Jupyter Notebook’u kurmak istediğiniz projeniz için bir dizin oluşturun ve içine girin. Örneğin:
mkdir my_jupyter_project
cd my_jupyter_project
Bu dizin içinde bir sanal ortam oluşturalım. Genellikle sanal ortam dizinine venv veya .venv adı verilir:
python3 -m venv venv
Bu komut, my_jupyter_project dizini içinde venv adında yeni bir dizin oluşturur ve bu dizinin içine izole edilmiş bir Python ortamı kurar.
Sanal ortamı etkinleştirmek için:
source venv/bin/activate
Sanal ortam etkinleştirildiğinde, terminal istemcinizin başında genellikle sanal ortamın adı (bu durumda (venv)) görünür. Bu, artık sanal ortam içinde çalıştığınızı gösterir. Bu noktadan sonra yükleyeceğiniz tüm Python paketleri (PIP ile), yalnızca bu sanal ortama yüklenecektir.
Sanal ortamdan çıkmak için deactivate komutunu kullanabilirsiniz:
deactivate
Ancak, Jupyter Notebook kurulumuna devam etmek için sanal ortamınızın etkin olduğundan emin olun.
Jupyter Notebook Kurulumu
Sanal ortamımız etkinleştirildiğine göre, şimdi Jupyter Notebook’u bu ortama kurabiliriz.
Sanal Ortam İçinde Kurulum
Sanal ortamınız etkin durumdayken (terminal istemcinizin başında (venv) gördüğünüzden emin olun), aşağıdaki komutu çalıştırın:
pip install jupyter
Bu komut, Jupyter Notebook’un yanı sıra, JupyterLab, IPython ve diğer temel Jupyter bileşenlerini de kuracaktır. Kurulum işlemi, internet hızınıza bağlı olarak birkaç dakika sürebilir.
Kurulumu Doğrulama
Jupyter Notebook’un başarıyla kurulduğunu doğrulamak için, sanal ortamınız etkin durumdayken aşağıdaki komutları çalıştırabilirsiniz:
jupyter --version
jupyter notebook --version
Bu komutlar, Jupyter ekosisteminin ve Jupyter Notebook uygulamasının yüklü sürümlerini gösterecektir. Bu çıktılar, kurulumun başarılı olduğunu teyit eder.
Jupyter Notebook’u Çalıştırma
Jupyter Notebook’u kurduktan sonra, onu çalıştırmak ve kullanmaya başlamak oldukça basittir.
Yerel Olarak Çalıştırma
Jupyter Notebook’u başlatmak için, sanal ortamınız etkin durumdayken (ve projenizin kök dizininde olduğunuzdan emin olun) aşağıdaki komutu çalıştırın:
jupyter notebook
Bu komutu çalıştırdığınızda, terminalde bazı bilgiler görünecek ve varsayılan web tarayıcınız otomatik olarak Jupyter Notebook arayüzünü açacaktır. Tarayıcı genellikle http://localhost:8888 adresine yönlendirilecektir.
Terminalde göreceğiniz çıktılar arasında, Jupyter Notebook’a erişmek için kullanabileceğiniz bir URL ve bir “token” (anahtar) bulunacaktır. Eğer tarayıcı otomatik olarak açılmazsa veya başka bir bilgisayardan erişmeye çalışıyorsanız, bu URL’i tarayıcınıza yapıştırarak erişebilirsiniz.
[I 12:34:56.789 NotebookApp] Serving notebooks from local directory: /home/youruser/my_jupyter_project
[I 12:34:56.789 NotebookApp] The Jupyter Notebook is running at:
[I 12:34:56.789 NotebookApp] http://localhost:8888/?token=your_long_secret_token
[I 12:34:56.789 NotebookApp] or http://127.0.0.1:8888/?token=your_long_secret_token
[I 12:34:56.789 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
Jupyter Notebook sunucusunu durdurmak için, terminal penceresine dönün ve Ctrl+C tuşlarına iki kez basın.
Tarayıcıda Erişim ve Temel Kullanım
Jupyter Notebook arayüzü açıldığında, projenizin dizin yapısını göreceksiniz. Yeni bir Notebook oluşturmak için sağ üst köşedeki “New” (Yeni) düğmesine tıklayın ve “Python 3” seçeneğini seçin. Bu, yeni bir boş Notebook belgesi açacaktır.
Bir Notebook içinde, “hücreler” (cells) bulunur. Hücreler, kod veya metin (Markdown formatında) içerebilir.
* Kod Hücresi: Python kodunuzu yazın ve Shift+Enter tuşlarına basarak çalıştırın. Çıktı, hücrenin hemen altında görünecektir.
* Markdown Hücresi: Açıklayıcı metinler, başlıklar, listeler ve bağlantılar eklemek için kullanın. Hücre türünü yukarıdaki araç çubuğundan “Code” yerine “Markdown” olarak değiştirebilirsiniz.
Notebook’unuzu kaydetmek için sol üstteki disk simgesine tıklayabilir veya “File” (Dosya) menüsünden “Save and Checkpoint” (Kaydet ve Kontrol Noktası Oluştur) seçeneğini kullanabilirsiniz.
Belirli Bir Dizin İçinde Çalıştırma
Jupyter Notebook’u başlattığınız dizin, Notebook arayüzünde kök dizin olarak görünecektir. Bu nedenle, projelerinizi düzenli tutmak için her zaman ilgili proje dizininin içinde jupyter notebook komutunu çalıştırmanız önerilir. Örneğin, my_data_analysis adında bir projeniz varsa:
cd my_data_analysis
source venv/bin/activate
jupyter notebook
Bu, Notebook’unuzun yalnızca o projeye ait dosyaları görmesini ve düzenlemesini sağlar.
Gelişmiş Kullanım ve Yapılandırma
Jupyter Notebook’u daha verimli ve güvenli bir şekilde kullanmak için bazı gelişmiş yapılandırmalar ve özellikler mevcuttur.
Jupyter Notebook Parola ile Güvenli Hale Getirme
Özellikle Jupyter Notebook’u uzak bir sunucuda çalıştırıyorsanız veya paylaşılan bir ortamda kullanıyorsanız, erişimi bir parola ile korumak önemlidir.
1. Parola Oluşturma:
Sanal ortamınız etkin durumdayken terminalde aşağıdaki komutu çalıştırın:
jupyter notebook password
Sizden yeni bir parola girmenizi ve onaylamanızı isteyecektir. Bu, ~/.jupyter/jupyter_notebook_config.json dosyasında şifrelenmiş bir parola hash’i oluşturur.
2. Yapılandırma Dosyası Oluşturma (Gerekirse):
Eğer daha önce bir yapılandırma dosyası oluşturmadıysanız, aşağıdaki komutla varsayılan bir yapılandırma dosyası oluşturabilirsiniz:
jupyter notebook --generate-config
Bu, ~/.jupyter/jupyter_notebook_config.py dosyasını oluşturacaktır.
3. Parola ile Çalıştırma:
Artık jupyter notebook komutunu çalıştırdığınızda, tarayıcıda Notebook arayüzüne erişmek için belirlediğiniz parolayı girmeniz istenecektir.
Uzak Sunucuda Çalıştırma (SSH Tünelleme ile)
Jupyter Notebook’u bir uzak sunucuda çalıştırıp yerel bilgisayarınızdan erişmek, özellikle güçlü donanıma sahip sunucularda veri bilimi görevleri yürütmek için yaygın bir senaryodur.
1. Uzak Sunucuda Jupyter Notebook’u Başlatma:
Uzak sunucunuza SSH ile bağlanın ve sanal ortamınızı etkinleştirerek Jupyter Notebook’u no-browser (tarayıcı açmadan) ve belirli bir portta (örneğin 8888) çalıştırın:
cd my_jupyter_project # Proje dizininize gidin
source venv/bin/activate
jupyter notebook --no-browser --port=8888
Bu komut, Notebook sunucusunu başlatacak ancak uzak sunucunun tarayıcısını açmayacaktır. Terminalde bir URL ve token göreceksiniz. Bu pencereyi açık bırakın.
2. Yerel Bilgisayarınızdan SSH Tüneli Oluşturma:
Yerel bilgisayarınızda yeni bir terminal açın ve aşağıdaki komutu kullanarak uzak sunucuya bir SSH tüneli oluşturun:
ssh -L 8888:localhost:8888 user@remote_host_ip
* -L 8888:localhost:8888: Yerel port 8888’i uzak sunucunun localhost:8888 adresine yönlendirir.
* user: Uzak sunucudaki kullanıcı adınız.
* remote_host_ip: Uzak sunucunuzun IP adresi veya ana bilgisayar adı.
Bu komutu çalıştırdığınızda uzak sunucuya SSH bağlantısı kurulacaktır.
3. Yerel Tarayıcıda Erişim:
SSH tüneli kurulduktan sonra, yerel bilgisayarınızın tarayıcısında uzak sunucudaki Jupyter Notebook’a erişmek için http://localhost:8888 adresine gidin. Eğer parola belirlediyseniz, parolayı girmeniz istenecektir. Aksi takdirde, uzak sunucudaki Jupyter Notebook çıktısında görünen token’ı girmeniz gerekebilir.
Güvenlik Notu: Uzak sunucuda Jupyter Notebook’u herkese açık IP adresine bağlamaktan kaçının (--ip=0.0.0.0 gibi). Bunun yerine her zaman SSH tünelleme kullanın. Ayrıca, sunucunuzun güvenlik duvarında (UFW gibi) 8888 portunun açık olmadığından emin olun, zira tünelleme bu portu doğrudan açmaya gerek bırakmaz.
Jupyter Kernel’ları Yönetme
Jupyter Notebook’lar, farklı programlama dilleri için “çekirdekler” (kernels) kullanır. Varsayılan olarak, pip install jupyter komutu, Python 3 için bir ipykernel kurar ve bunu Notebook’a kaydeder. Ancak, farklı Python sanal ortamlarınız varsa veya başka diller (R, Julia vb.) için çekirdekler eklemek isterseniz, bunu yapabilirsiniz.
Yeni Bir Sanal Ortam Kernel’ı Ekleme
Diyelim ki my_other_env adında başka bir Python sanal ortamınız var ve bu ortamı Jupyter Notebook’ta bir kernel olarak kullanmak istiyorsunuz:
1. İlgili sanal ortamı etkinleştirin:
source my_other_env/bin/activate
2. ipykernel paketini bu sanal ortama kurun:
pip install ipykernel
3. Bu kernel’ı Jupyter’a kaydedin:
python3 -m ipykernel install --user --name=my_other_env --display-name="Python (My Other Env)"
* --user: Kernel’ı mevcut kullanıcı için yükler.
* --name: Kernel’ın dahili adıdır.
* --display-name: Jupyter Notebook arayüzünde görünecek addır.
Artık Jupyter Notebook’u başlattığınızda, “New” menüsünde “Python (My Other Env)” seçeneğini göreceksiniz.
Yüklü Kernel’ları Listeleme
Hangi kernel’ların Jupyter tarafından bilindiğini görmek için:
jupyter kernelspec list
Bu komut, yüklü tüm kernel’ların adlarını ve konumlarını listeleyecektir.
Kernel Kaldırma
Bir kernel’ı kaldırmak için:
jupyter kernelspec uninstall my_other_env
my_other_env yerine kaldırmak istediğiniz kernel’ın adını yazın.
Jupyter Notebook Uzantıları (Extensions)
Jupyter Notebook uzantıları (nbextensions), Notebook arayüzüne ek işlevsellik katan küçük eklentilerdir. Bunlar, kod tamamlama, içerik tablosu, kod biçimlendirme gibi birçok faydalı özellik sunar.
1. Uzantıları Kurma:
pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
İlk komut uzantı paketini kurar, ikinci komut ise uzantıların JavaScript ve CSS dosyalarını Jupyter’ın erişebileceği bir konuma yükler.
2. Uzantıları Etkinleştirme:
Jupyter Notebook’u başlattığınızda (jupyter notebook), ana arayüzde “Nbextensions” adında yeni bir sekme göreceksiniz. Buradan istediğiniz uzantıları etkinleştirebilir veya devre dışı bırakabilirsiniz. Bazı popüler uzantılar şunlardır:
* Table of Contents (2): Notebook’unuz için otomatik bir içerik tablosu oluşturur.
* Hinterland: Gelişmiş kod tamamlama ve otomatik öneriler sunar.
* Code prettify (autopep8/yapf): Kodunuzu PEP 8 standartlarına göre otomatik olarak biçimlendirir.
Jupyter Lab: Yeni Nesil Jupyter Arayüzü
Jupyter Notebook’un daha modern ve güçlü bir halefi olan Jupyter Lab’ı da kullanmayı düşünebilirsiniz. Jupyter Lab, Notebook’ların yanı sıra bir dosya tarayıcısı, terminal, metin editörü ve daha fazlasını tek bir entegre arayüzde sunar.
Genellikle pip install jupyter komutu Jupyter Lab’ı da kurar. Eğer kurulu değilse, sanal ortamınız etkin durumdayken:
pip install jupyterlab
Jupyter Lab’ı başlatmak için:
jupyter lab
Jupyter Lab, Notebook’a benzer şekilde varsayılan tarayıcınızda açılacaktır ve çok daha zengin bir kullanıcı deneyimi sunar.
Sorun Giderme (Troubleshooting)
Kurulum veya kullanım sırasında karşılaşabileceğiniz yaygın sorunlar ve çözümleri:
* jupyter: command not found hatası:
* Çözüm: Sanal ortamınızın etkin olduğundan emin olun (source venv/bin/activate). Eğer etkinse ve hala hata alıyorsanız, Jupyter’ın sanal ortama doğru şekilde kurulduğundan emin olmak için pip install jupyter komutunu tekrar çalıştırın. Bazen PATH değişkeni doğru ayarlanmamış olabilir; bu durumda sanal ortamı yeniden oluşturmayı veya deactivate edip tekrar activate etmeyi deneyin.
* Jupyter Notebook tarayıcıda otomatik olarak açılmıyor:
* Çözüm: Terminal çıktısında verilen URL’yi (örneğin http://localhost:8888/?token=...) manuel olarak kopyalayıp web tarayıcınıza yapıştırın. Bazen varsayılan tarayıcı ayarları veya bir tarayıcı eklentisi otomatik açılmayı engelleyebilir.
* Notebook’ta “Kernel died” veya “No kernel” hatası:
* Çözüm: Bu genellikle Python bağımlılıklarıyla ilgili bir sorunu veya kernel’ın doğru kurulmadığını gösterir.
* Sanal ortamınızın etkin olduğundan emin olun.
* ipykernel paketinin sanal ortamınızda yüklü olduğundan emin olun (pip install ipykernel).
* jupyter kernelspec list komutuyla kernel’ın doğru şekilde kaydedildiğini kontrol edin.
* Gerekirse, kernel’ı kaldırıp yeniden yükleyin: jupyter kernelspec uninstall your_kernel_name ve ardından python3 -m ipykernel install --user --name=your_kernel_name --display-name="Your Kernel Name".
* PIP ile paket yüklemede izin hatası (Permission denied):
* Çözüm: Sanal ortam kullanıyorsanız, pip komutunu sudo olmadan çalıştırın. Sanal ortamda paketleri yüklemek için yönetici ayrıcalıklarına ihtiyacınız yoktur. Eğer sanal ortam kullanmıyorsanız (ki bu önerilmez), sistem genelinde bir paket yüklemek için sudo pip install package_name kullanmanız gerekebilir, ancak bu, bağımlılık çakışmalarına yol açabilir.
* Performans sorunları (yavaşlık, takılma):
* Çözüm: Özellikle büyük veri kümeleriyle çalışırken veya çok sayıda görselleştirme oluştururken Jupyter Notebook yavaşlayabilir.
* Büyük çıktılardan kaçının.
* Gereksiz değişkenleri temizleyin (del var_name).
* Daha fazla RAM veya CPU’ya sahip bir makine kullanmayı düşünün (özellikle uzak sunucularda).
* Jupyter Lab, daha iyi kaynak yönetimi sağlayabilir.
Sonuç
Bu kapsamlı rehberde, Ubuntu 22.04 üzerinde Python 3 için Jupyter Notebook’u kurmanın ve yapılandırmanın tüm adımlarını detaylı bir şekilde inceledik. Sistem güncellemelerinden başlayarak, sanal ortamların önemine, Jupyter Notebook’un temel kurulumuna ve gelişmiş kullanım senaryolarına kadar birçok konuyu ele aldık.
Artık güçlü, esnek ve etkileşimli bir geliştirme ortamına sahipsiniz. Jupyter Notebook, veri bilimi projelerinizi geliştirmek, analizlerinizi paylaşmak ve kodunuzu belgelemek için mükemmel bir araçtır. Sanal ortamlar kullanarak projelerinizi izole tutmayı ve PIP ile bağımlılıklarınızı yönetmeyi unutmayın.
Jupyter Notebook’u keşfetmeye devam edin. Python’un zengin kütüphane ekosistemi (NumPy, Pandas, Matplotlib, Scikit-learn vb.) ile birleştiğinde, veri analizi ve makine öğrenimi alanında sınırsız olanaklar sunar. Başarılar dileriz!
