Kendi Python’unu Django’nu paketlerini kendin kur
Düzeltme: 23 Mart 2011, 15:33
Lütfen önce bu yazıyı okuyun!
Sevgili kardeşim Fırat Can Başarır uzunca zamandır bana:
abi, python paketlerini pip’ten kuralım, ports’dan kurmayalım, bu şekilde çok rahat ederiz
diyordu… Peki, haydi yapalım… Gidip Python.org’dan Mac OS için hazırlanmış installer’ı çektik. Kuruluma geçtik, işlemler bitti, süper! python’u kurduk sisteme…
Hemen python’un interactive shell’ine girdik. Yıllardır bitip tükenmek
bilmeyen locale sorunları yüzünden ( tarih ve Türkçe harfler ) ilk
yaptığım iş shell’de ğ
harfine basmak oldu…
BUUUUUUUUUUM!
Türkçe harler çalışmıyor? yani ğ
ş
ü
gibi harflere basınca hata sesi çıkıyor
ve saçma sapan karakterler çıkıyor ekrana…
Bunun aynısı macos’la birlikte gelen Nano adlı text editörde de yaşamış, çözümü macports’da bulmuştum. Nano’yu macports’dan kurunca hem versiyon güncellenmiş hem de Türkçe sorunları ortadan kalkmıştı…
Yani koskoca Python.org’dan indirdiğimiz uygulamada bile locale sorunu yaşamak hakikatten komikti… Bunun tahmini 2 sebebi vardı:
- macos’la gelen readline kütüphanesinde Türkçe karakter desteği yoktu
- python
utf-8
desteği ile compile (derleme) edilmemişti!
Bugüne kadar hep macports’tan python kurulumu yaptığımız için hiç bir sıkıntı
yaşamamıştık… Hemen macports’un pyton27
ile ilgili ports dosyasına
baktık.
depends_lib kısmında, python’u derlemek için gerekecek diğer kütüphaneler listesini gördük. Bunlar:
gettext
zlib
openssl
sqlite3
db46
ncurses
gdbm
bzip2
readline
şeklindeydi. configure.args
’a baktığımda; --enable-framework
ve
--enable-unicode
dikkatimi çekti. İşin esas can alıcı kısmı ise unicode
ile ilgili olan parametresiydi. Hemen $HOME
folder’ıma gidip işe koyuldum. Eğer
depends_lib
’deki paketler sizde yoksa önce bu paketleri kurun:
sudo port selfupdate # önce paket listesini güncelle
port installed | grep PAKET_ADI # paket zaten kurulumu?
port installed PAKET_ADI # 29 Ocak 2012, Pazar, 20:23 itibariyle paket kontrolü
port search PAKED_ADI # ilgili paketi ara
sudo port install PAKET_ADI # geren paketi kur
Eğer tüm paketler hazırsa python’u derlemeye başlayalım. Hemen http://python.org/download/ adresinden source’u çekelim. Ben bu post’u yazarken kullandığım source buydu
cd $HOME
mkdir .local
mkdir .local/Packages
cd ~/Downloads # Python-2.7.1.tgz buradaysa
tar xvzf http://python.org/ftp/python/2.7.1/Python-2.7.1.tgz
setup.py
dosyasında minik bir ayar yapacağız. Dosyayı, kullandığınız text
editörü ile açıp aşağıdaki satırları bulun.
add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
Hemen altına aşağıdaki satırları ilave edin:
add_dir_to_list(self.compiler.library_dirs, '/opt/local/lib')
add_dir_to_list(self.compiler.include_dirs, '/opt/local/include')
Bu sayede, macports’la kurduğunuz kütüphanelerin de kullanılmasını sağlıyoruz. Şimdi derleme işine geçebiliriz.
./configure --enable-unicode=ucs4 --prefix=$HOME/.local --enable-framework=$HOME/.local/Library/Frameworks
make
make install
Derleme işlermleri başarıyla biterse (ki bitmeli) hemen kurulum yaptığınız yere gidip bakın:
cd ~/.local/
ls -al
Applications
Library
Packages
bin
gibi folder’lar görmeniz gerekiyor. Aslında yazıyı yazarken
keşke .local/python diye bir folder açıp, herşeyi o şekilde kursaydım
diye deaklımdan geçirdim. İleride belki Ruby’i ya da başka bir şeyi de kendim kurmam gerekirse karışıklık olmadan yapabilirdim diye düşündüm…
Herşey tamamsa, hemen ENVIRONMENT
değişkenlerine ayar yapalım: Bunun için
.bashrc
ya da .profile
ya da ne kullanıyorsanız o dosyayı açıp aşağıdakileri
ekleyin:
export PATH=$HOME/.local/Packages/bin:$PATH
export PATH=$HOME/.local/bin:$PATH
export PATH=$HOME/.local/Library/Frameworks/Python.framework/Versions/Current/bin:$PATH
export PYTHONIOENCODING=utf-8
Şimdi sırada easy_install var. Bunun için Setuptools’u kurmamız lazım. Source’u indirdikten ve extract ettikten sonra, klasik python modülü kurma işlemi yapıyoruz:
python setup.py install
İşem bitince hemen kontrol ediyoruz, easy_install’un yeri neresi?
which easy_install
Görmek istediğimiz path, kullanıcı folder’ınızın altında ($HOME
)
/.local/Library/Frameworks/Python.framework/Versions/Current/bin/easy_install
gibi olmalıdır.
Eğer herşey yolundaysa hemen pip’i kuralım:
easy_install pip
Kurulum bitince tekrar ENVIRONMENT
’a ayar yapmamız gerekiyor:
export PIP_INSTALL_OPTION="--prefix=$HOME/.local/Packages/"
export PYTHONPATH=$HOME/.local/Packages/lib/python2.7/site-packages
Bu sayede, ilgili python paketlerimizi de .local
içine alıyoruz. Böylece,
ileriede bir gün makineyi yeniden kurduğunuzda ya da başka bir durumda,
kasmadan tüm paketlerinizi vs kolayca taşıyabileceksiniz. Şimdi pip
ile
gereken paketleri kurabiliriz. Benim en çok kullandıklarım:
pip install django ipython south simplejson PIL
pip direk pypi’dan indirdiği için hem paketleri güncellemeniz hem de
yönetmeniz çok kolay oluyor. Macports’la ya da Ubuntu’daki aptitude’la
bazen sıkıntılar çıkabiliyor. Python paketleri için en rahat çözüm pip
oluyor.
Güncelleme: 6 Temmuz 2016
Ne yazıkki burada yazan şeylerle uğraşmadan Homebrew
üzerinden: brew install python
demek yeterli :)