arşiv

yazılar buna göre etiketlendi; ‘Windows’

Python: Windows’ta Türkçe Karakter Sorunu

Salı, 13 Nis 2010

Diyelim ki elimizde şöyle bir şey var:

#-*- coding: cp1254 -*-
 
def kayit_ekle(isim, soyisim, sehir, meslek, tel, adres):
    kayit = {}
 
    kayit["%s %s" %(isim, soyisim)] = [sehir, meslek, tel, adres]
 
    print "\nBağlantı bilgileri kayıtlara eklendi!\n"
 
    for k, v in kayit.items():
        print k
        print "-"*len(k)
        for i in v:
            print i
 
kayit_ekle(isim = "Abdurrahman",
           soyisim = "Çelebi",
           meslek = "Öğretmen",
           tel = "0212 123 45 67",
           sehir = "İstanbul",
           adres = "Çeliktepe")

Bu kodları (utf-8 ile) GNU/Linux’ta çalıştırırken herhangi bir Türkçe karakter sorunuyla karşılaşmıyoruz. Ancak aynı kodları Windows’ta çalıştırmak istediğimizde şöyle bir çıktı alıyoruz:

Ba­lant² bilgileri kay²tlara eklendi!
 
Abdurrahman Ãelebi
------------------
¦stanbul
Í­retmen
0212 123 45 67
Ãeliktepe

Gördüğünüz gibi bütün Türkçe karakterler birbirine girmiş durumda. Bunun temel sebebi Windows’ta komut satırının öntanımlı yazı tipinin unicode karakterleri gösterememesi. Yani aslında komut satırının kendisi Türkçe karakterleri düzgün bir şekilde algılayabiliyor. Ancak kullanılan öntanımlı yazı tipi bu karakterlerin düzgün bir şekilde gösterilmesine müsaade etmiyor… Ayrıca ortaya çıkan bu durumda, MS-DOS’un öntanımlı kod sayfasının da etkisi var.

Yukarıdaki sorundan kurtulmak için şu işlemleri yapmamız gerekiyor:

1. Önce kullanılan kod sayfasını değiştiriyoruz:

chcp 1254

2. Ardından pencere başlığına sağ tıklayıp “özellikler”e giriyoruz.

3. Yazı Tipi sekmesi içinde yazı tipini “Lucida console” olarak değiştiriyoruz.

4. Tamam’a basıyoruz.

5. Karşımıza çıkan pencerede, “özellikleri sadece geçerli pencereye uygula” seçeneğini işaretliyoruz.

Şimdi en başta verdiğimiz betiği çalıştırdığımızda şu çıktıyı alıyoruz:

Bağlantı bilgileri kayıtlara eklendi!
 
Abdurrahman Çelebi
------------------
İstanbul
Öğretmen
0212 123 45 67
Çeliktepe

admin Python, Teknik , , ,

Harman-0.8 + Windows Kurulum Betiği

Salı, 05 Oca 2010

Bildiğiniz gibi, Harman ilk yayımlandığında hem kaynak dosyalarını, hem Ubuntu .deb paketini, hem de py2exe ile hazırlanan Windows .exe dosyasını istihza.com sunucularına alıyorum. HARMAN’ın .exe dosyası, üzerine çift tıklandığında doğrudan HARMAN’ın çalışmasını sağlar. Bu dosya Windows sistemi üzerinde herhangi bir kurulum işlemi gerçekleştirmez. Yani istihza.com’dan indirdiğiniz .exe dosyasını barındıran HARMAN klasörünü sildiğinizde HARMAN da gitmiş olur…

HARMAN’ın bir önceki sürümü olan 0.7 ile birlikte, HARMAN’ı Windows işletim sistemine kurmamızı sağlayacak bir imkana da kavuştuk. Bize bu imkanı, InnoSetup programı yardımıyla HARMAN’a bir kurulum betiği hazırlayan sevgili Sedat Ayma sağlamıştı. Bu betik yardımıyla Windows kullanıcıları programı bilgisayarlarına kurabiliyor, ayrıca daha sonra isterlerse Windows’un “program ekle-kaldır” özelliğini kullanarak sistemlerinden kaldırabiliyorlar. Bu kurulum betiği sayesinde HARMAN Windows’ta “Başlat > Programlar > Harman” yoluna da yerleşiyor. Böylece programa ulaşmak son derece kolay bir hal alıyor. Kullanıcılar isterlerse kurulum sırasında HARMAN için bir masaüstü kısayolu da oluşturabiliyor…

HARMAN programı için 0.7 sürümünde bu kurulum betiğini hazırlayıp bize gönderen Sedat Ayma aynı emeği HARMAN’ın 0.8 sürümü için de vermiş. Sedat Ayma’nın hazırladığı bu kurulum betiğini http://www.istihza.com/harman/harman-0.8/exe/Harman_setup.exe adresinden indirebilirsiniz. Bu kurulum betiğine çift tıkladığınızda HARMAN rutin bir şekilde C:\Program Files\Harman yolu içine kurulacaktır. HARMAN’ı sisteminizden kaldırmak için Denetim Masası’ndaki “Program Ekle/Kaldır” yolunu izleyebilirsiniz.

Sedat Ayma’ya ve HARMAN’ın farklı işletim sistemlerine kolay kurulabilmesi için emek harcayan bütün arkadaşlarıma teşekkür ederim.

**************************************************************************

Güncelleme: HARMAN’ın en son sürümüne ulaşmak için http://istihza.com/harman/icindekiler_harman.html adresini ziyaret edebilirsiniz.

******************************************************************

admin Yazılım , , , ,

PyGtk ve Windows

Pazar, 03 Oca 2010

Windows’ta bir PyGtk Hatası başlıklı yazıda PyGtk’nın Windows’ta hata verdiğinden bahsetmiş, bu sorunun nasıl çözülebileceğini anlatmıştık. O yazıda PyGtk’nın Windows’ta çalışabilmesi için indirilip kurulması gereken programların bağlantılarını da vermiştik.  O bağlantıları bugün kontrol ettiğimde bazılarının kaldırılmış olduğunu gördüm. Dolayısıyla Windows’lu bilgisayarlara PyGtk’yi şimdi kuracak olanlar için o yazıdaki bilgileri ve bağlantıları güncellemek gerekiyor… Ancak hatırlatayım, şimdi vereceğim bilgileri, o yazıdaki bilgilerle birlikte değerlendirmelisiniz…

Windows’ta PyGtk’yi kullanabilmek için sisteminizde Python’un 2.6.4 sürümünün kurulu olması gerekiyor. Bu sürümü http://www.python.org/ftp/python/2.6.4/python-2.6.4.msi adresinden indirip kurabilirsiniz.

Python’u kurduktan sonra Python’u Windows PATH değişkenine eklemeyi unutmayın.  Python’u PATH değişkenine nasıl ekleyeceğinizi öğrenmek için http://www.istihza.com/py2/windows-path.html adresindeki makalemizden yararlanabilirsiniz.

Daha sonra http://ftp.acc.umu.se/pub/gnome/binaries/win32/gtk+/2.18/gtk+-bundle_2.18.5-20091215_win32.zip adresinden “GTK Bundle” paketini indiriyoruz. Bu paketi, eski yazıda anlattığımız şekilde C:/GTK dizini içine açıp, C:/GTK/bin dizinini PATH değişkenine ekliyoruz.

Pycairo, Pygobject ve PyGtk paketlerini ise sırayla şu adreslerden indiriyoruz:

Pycairo: http://ftp.acc.umu.se/pub/GNOME/binaries/win32/pycairo/1.4/pycairo-1.4.12-2.win32-py2.6.exe

Pygobject: http://ftp.acc.umu.se/pub/GNOME/binaries/win32/pygobject/2.14/pygobject-2.14.2-2.win32-py2.6.exe

PyGtk: http://ftp.acc.umu.se/pub/GNOME/binaries/win32/pygtk/2.12/pygtk-2.12.1-3.win32-py2.6.exe

Bunların dışında, dilerseniz http://downloads.sourceforge.net/gtk-win/gtk2_prefs-0.4.1.bin-gtk2.10-win32.zip?download adresinden “GTK Preference Tool” adlı uygulamayı da indirebilirsiniz. Bu uygulama, GTK programlarının temalarını değiştirmenizi sağlar.

İyi çalışmalar,

istihza

admin Python ,

Tkinter’de Saydam Pencereler Oluşturmak

Pazar, 18 Eki 2009

Tkinter’de “wm_attributes()” adlı bir metot var. Bu metodun help() dosyasında şu bilgi veriliyor:

>>> from Tkinter import *
>>> help(Tk().wm_attributes)
 
On Unix, there are currently no special attribute values

Bu metot, aslında Tkinter’de pencereleri şeffaf yapmamızı sağlayacak bir parametreye sahip. Windows ve MacOs sistemlerinde şöyle bir komut yazarak pencereleri şeffaf hale getirebiliyoruz:

>>> pencere.wm_attributes("-alpha", 0.5)

“-alpha” değeri 0 ile 1 arasında değerler alabiliyor ve bu değer pencerenin şeffaflık düzeyini gösteriyor.

Yukarıdaki komut Windows ve MacOs’ta doğrudan çalışabiliyor. Ancak GNU/Linux sistemlerinde “-alpha” değerinin pencere şeffaflığı üzerinde herhangi bir etkisi bulunmuyor.

Tkinter belgeleri de bu bilgiyi doğruluyor… Hatta http://www.tcl.tk/man/tcl8.4/TkCmd/wm.htm#M6 adresinde “wm attributes” metodunun “-alpha” parametresi için şu bilgi verilmiş:

Specifies the alpha transparency level of the toplevel. It accepts a value from 0.0 (fully transparent) to 1.0 (opaque). Values outside that range will be constrained. This is supported on Windows 2000/XP+. Where not supported, the -alpha value remains at 1.0.

Burada da bu metodun sadece Windows 2000/XP sistemlerinde desteklendiği yazılmış. Ancak bugün bilgisayarı kurcalarken tesadüfen, aslında Tkinter ile şeffaf pencere oluşturmanın GNU/Linux’ta da mümkün olabileceğini farkettim. Eğer sistemde Compiz Fusion çalışıyorsa veya Ubuntu’da “Sistem > Tercihler > Görünüm > Görsel Efektler” içinde “Extra” seçeneği seçili ise şöyle bir kod Tkinter penceresini şeffaflaştırıyor:

#-*-coding:utf-8-*-
from Tkinter import *
 
pencere= Tk()
pencere.geometry("200×200")
 
def saydamlastir():
    pencere.wm_attributes("-alpha",0.5)
 
btn = Button(text="saydamlaştır", command=saydamlastir)
btn.pack(side=BOTTOM)
 
pencere.mainloop()

Tabii yine de her makinede Compiz Fusion’un çalışmayacağını hesaba katarsak, bu yöntemin çok sağlıklı olduğunu söylemek zor…

admin GNU/Linux , , , , , , ,

Windows’ta bir PyGtk Hatası

Salı, 06 Eki 2009

********************************************************************

ÖNEMLİ NOT: Bu yazıdaki bazı bağlantılar eskimiştir. Bağlantıların yeni adresleri için http://www.istihza.com/blog/pygtk-ve-windows.html/ sayfasındaki yazımızı inceleyiniz…

********************************************************************

Bir-iki gün önce bir arkadaş bana e.posta göndererek, Windows’ta PyGtk’yi kullanamadığını, herhangi bir PyGtk programını çalıştırmaya çalıştığında şöyle bir hata aldığını söyledi:

from _gobject import type_from_name
ImportError: DLL load failed: Belirtilen modül bulunamadı.

Bunun üzerine deneme yapmak için ben de daha önce PyGtk kurduğum ve düzgün bir şekilde çalışan Windows’lu bir bilgisayardaki PyGtk ve PyGtk’ye ilişkin bütün paketleri önce kaldırıp daha sonra PyGtk ve ilgili paketleri yeniden kurdum bu bilgisayara…

Dediğim gibi, eski kurulumda bir sorun yoktu, ancak bu kez PyGtk’yi kurup herhangi bir PyGtk programını çalıştırmaya çalıştığımda ben de hemen hemen aynı hatayı aldım.

Benim aldığım hata da şöyleydi:

ImportError: DLL load failed: The specified module could not be found.

Sanırım son GTK paketlerinden birinde bir uyumsuzluk var… Eğer siz de Windows üzerine PyGtk kurarken yukarıdakine benzer bir hata alıyorsanız, sorunu şu şekilde çözebilirsiniz:

1. Önce PyGtk ile ilgili kurduğunuz bütün programları kaldırın.

2. Daha sonra sırasıyla şu programları indirin:

** http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.16/gtk+-bundle_2.16.6-20090911_win32.zip

** http://ftp.gnome.org/pub/GNOME/binaries/win32/pycairo/1.4/pycairo-1.4.12-2.win32-py2.6.exe

** http://ftp.gnome.org/pub/GNOME/binaries/win32/pygobject/2.14/pygobject-2.14.2-2.win32-py2.6.exe

** http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/2.12/pygtk-2.12.1-3.win32-py2.6.exe

3. İlk paket hariç ötekilerin kurulum betikleri var. Bunları çift tıklayarak kurabilirsiniz. Yalnız bu paketleri kurarken listeden Python 2.6 sürümünü seçmeyi unutmayın…

4. İlk “bundle” paketini C dizini içinde GTK adlı bir klasörün içine açın. Daha sonra C:\GTK\bin klasörünü “PATH” değişkeninize ekleyin.

Eğer bu dizini “PATH” değişkenine nasıl ekleyeceğinizi bilmiyorsanız şu makalemizden yararlanabilirsiniz: http://www.istihza.com/py2/windows-path.html

admin Teknik , , ,

Windows’ta Python’u Doğrudan Çalıştırmak

Pazartesi, 16 Şub 2009

Bildiğiniz gibi, Windows’ta Python’u kurduktan sonra komut satırında sadece “python” yazarak etkileşimli kabuğa ulaşamıyoruz. GNU/Linux kullanıcıları ise tek bir komutla etkileşimli kabuğa ulaşabiliyor. Bunun nedeni Python’un GNU/Linux dağıtımlarında YOL içinde yer alırken, Windows’ta varsayılan olarak YOL’a eklenmemesidir… Bu yüzden “python program_adı” komutu Windows altında doğrudan çalışmayacaktır. Windows’ta bu sorunun üstesinden nasıl gelebileceğimizi, Makaleler bölümüne eklediğim yeni yazıda anlatmaya çalıştım. İlgili yazıya şuradan ulaşabilirsiniz: Windows’ta Python’u YOL’a (PATH) eklemek

İyi çalışmalar,

istihza

admin Python , ,