forked from yazbel/python
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathkurulum.html
More file actions
483 lines (455 loc) · 39.3 KB
/
kurulum.html
File metadata and controls
483 lines (455 loc) · 39.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
<!DOCTYPE html>
<html lang="tr">
<html lang="tr">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta content="Bu bölümde Python programlama dilinin farklı işletim sistemlerine nasıl kurulacağını anlatacağız." name="description" />
<meta content="python, python2, python3, kurulum, kaynaktan, Windows, GNU, Linux, root, configure, prefix, home, ev, path, yol" name="keywords" />
<title>Python Nasıl Kurulur? — Python 3 için Türkçe Kılavuz</title>
<link rel="stylesheet" href="_static/pyramid.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/language_data.js"></script>
<script src="_static/translations.js"></script>
<link rel="search" title="Ara" href="search.html" />
<link rel="next" title="Python Nasıl Çalıştırılır?" href="calistirma.html" />
<link rel="prev" title="Python Hakkında" href="python_hakkinda.html" />
<!--[if lte IE 6]>
<link rel="stylesheet" href="_static/ie6.css" type="text/css" media="screen" charset="utf-8" />
<![endif]-->
</head><body>
<div class='header'><a href='https://yazbel.com'>yazbel.com</a></div>
<ul class='navbar'>
<li><a href="#"><del>pdf desteği sonlanmıştır</del></a></li>
<li class="forum"><a href="http://forum.yazbel.com">forum</a></li>
</ul>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Gezinti</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="calistirma.html" title="Python Nasıl Çalıştırılır?"
accesskey="N">sonraki</a></li>
<li class="right" >
<a href="python_hakkinda.html" title="Python Hakkında"
accesskey="P">önceki</a> |</li>
<li class="nav-item nav-item-0"><a href=".">⌂</a></li>
<li class="nav-item nav-item-this"><a href="">Python Nasıl Kurulur?</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="body" role="main">
<div class="section" id="python-nasil-kurulur">
<h1>Python Nasıl Kurulur?<a class="headerlink" href="#python-nasil-kurulur" title="Bu başlık için kalıcı bağlantı">¶</a></h1>
<p>Python ile program yazabilmemiz için bu programlama dilinin bilgisayarımızda kurulu olması gerekiyor.
Bu programlama dilini kurmanızın gerekip gerekmediği, kullandığınız işletim sistemine bağlıdır.
Biz burada hem GNU/Linux hem de Windows kullanıcılarının durumunu sırasıyla ve ayrı ayrı inceleyeceğiz.
Dilerseniz öncelikle GNU/Linux kullanıcılarının durumuna bakalım:</p>
<div class="admonition note">
<p class="admonition-title">Not</p>
<p>Bu kitap boyunca bazı konuların GNU/Linux ve Windows kullanıcıları için ayrı ayrı anlatıldığını göreceksiniz.
Ancak konular bu şekilde ayrılmış da olsa, ben size her ikisini de okumanızı tavsiye ederim.
Çünkü bu bölümlerde her iki kullanıcı grubunun da ilgisini çekebilecek bilgilere rastlayacaksınız.
Ayrıca bu bölümler farklı kullanıcı gruplarına hitap ediyor olsa da, aslında bu bölümlerin birbirini tamamlayıcı nitelikte olduğunu göreceksiniz.</p>
</div>
<div class="section" id="gnu-linux-kullanicilari">
<h2>GNU/Linux Kullanıcıları<a class="headerlink" href="#gnu-linux-kullanicilari" title="Bu başlık için kalıcı bağlantı">¶</a></h2>
<p>GNU/Linux dağıtımlarına Python programlama dilini kurarken bazı noktaları göz önünde bulundurmamız gerekiyor.
İşte bu bölümde bu önemli noktaların neler olduğunu inceleyeceğiz.</p>
<div class="section" id="kurulu-python-surumu">
<h3>Kurulu Python Sürümü<a class="headerlink" href="#kurulu-python-surumu" title="Bu başlık için kalıcı bağlantı">¶</a></h3>
<p>Hemen hemen bütün GNU/Linux dağıtımlarında Python programlama dili kurulu olarak gelir.
Örneğin Ubuntu’da Python zaten kuruludur.</p>
<p>Ancak burada şöyle bir durum var:</p>
<p>Daha önce de belirttiğimiz gibi, şu anda piyasada iki farklı Python serisi bulunuyor.
Bunlardan birinin Python’ın 2.x serisi, ötekinin ise 3.x serisi olduğunu biliyorsunuz.</p>
<p>Sisteminizde kurulu olan Python sürümünü denetlemek için komut satırında öncelikle şu komutu vermeyi deneyin (büyük ‘V’ ile):</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>python -V
</pre></div>
</div>
<p>Eğer bu komuttan <cite>Python 2.x.y</cite> şeklinde bir çıktı alıyorsanız, yani x ve y’den önceki kısım 2 ile başlıyorsa sisteminizde Python2 kuruludur.</p>
<p>Ancak <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-V</span></code> komutundan <cite>Python 2.x.y</cite> şeklinde bir çıktı almanız sisteminizde <strong>sadece</strong> Python2’nin kurulu olduğunu göstermez.
Sisteminizde Python2 ile birlikte Python3 de halihazırda kurulu olabilir.
Örneğin Ubuntu GNU/Linux’un <strong>12.10</strong> sürümünden itibaren hem Python2, hem de Python3 sistemde kurulu vaziyettedir.</p>
<p>Kullandığınız GNU/Linux dağıtımında durumun ne olduğunu denetlemek için yukarıdaki komutu bir de <code class="docutils literal notranslate"><span class="pre">python3</span> <span class="pre">-V</span></code> şeklinde çalıştırmayı deneyebilirsiniz.
Eğer bu komut size bir hata mesajı yerine bir sürüm numarası veriyorsa sisteminizde Python3 de kuruludur.</p>
<p>Sisteminizdeki Python sürümlerine ilişkin daha kesin bir rapor içinse şu komutu kullanabilirsiniz:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>ls -g {,/usr{,/local}}/bin | grep python
</pre></div>
</div>
<p>Buradan aldığınız çıktıyı inceleyerek de sisteminizde birden fazla Python sürümünün kurulu olup olmadığını görebilirsiniz.</p>
<p>Ayrıca kullandığınız GNU/Linux dağıtımında <code class="docutils literal notranslate"><span class="pre">whereis</span> <span class="pre">python</span></code> gibi bir komut vererek de sistemde kurulu Python sürümleri hakkında bilgi edinebilirsiniz.</p>
<p>Eğer sisteminizde Python3 kuruluysa ve siz de kurulu olan Python3 sürümünden memnunsanız herhangi bir şey yapmanıza gerek yok.
Farklı bir Python sürümü kurmaya çalışmadan yolunuza devam edebilirsiniz.</p>
</div>
<div class="section" id="paket-deposundan-kurulum">
<h3>Paket Deposundan Kurulum<a class="headerlink" href="#paket-deposundan-kurulum" title="Bu başlık için kalıcı bağlantı">¶</a></h3>
<p>Sistemlerinde öntanımlı olarak herhangi bir Python3 sürümü kurulu olmayan veya sistemlerinde kurulu öntanımlı Python3 sürümünden memnun olmayan GNU/Linux kullanıcılarının, Python3’ü elde etmek için tercih edebileceği iki yol var:
Birincisi ve benim size önereceğim yol, öncelikle kullandığınız dağıtımın paket yöneticisini kontrol etmenizdir.
Python3 sisteminizde kurulu olmasa bile, dağıtımınızın depolarında bu sürüm paketlenmiş halde duruyor olabilir.
O yüzden sisteminize uygun bir şekilde paket yöneticinizi açıp orada ‘python’ kelimesini kullanarak bir arama yapmanızı öneririm.
Örneğin Ubuntu GNU/Linux dağıtımının paket depolarında Python3 var.
Dolayısıyla Ubuntu kullanıcıları, eğer sistemlerinde zaten kurulu değilse (ki muhtemelen kuruludur), bu paketi Ubuntu Yazılım Merkezi aracılığıyla veya doğrudan şu komutla kurabilir:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>sudo apt-get install python3
</pre></div>
</div>
<p>Bu komut, Python3’ü bütün bağımlılıkları ile beraber bilgisayarınıza kuracaktır.</p>
</div>
<div class="section" id="kaynaktan-kurulum">
<h3>Kaynaktan Kurulum<a class="headerlink" href="#kaynaktan-kurulum" title="Bu başlık için kalıcı bağlantı">¶</a></h3>
<p>Peki ya kullandığınız dağıtımın depolarında Python3 yoksa veya depodaki Python3 sürümü eskiyse ve siz daha yeni bir Python3 sürümü kullanmak istiyorsanız ne yapacaksınız?</p>
<p>Eğer dağıtımınızın depolarında Python3 paketini bulamazsanız veya depodaki sürüm sizi tatmin etmiyorsa, Python3’ü kaynaktan derlemeniz gerekecektir.
Python3’ü kaynaktan derlerken iki seçeneğiniz var:
Python3’ü <cite>root</cite> hakları ile kurmak veya Python3’ü yetkisiz kullanıcı olarak kurmak.
Normal şartlar altında eğer kullandığınız sistemde <cite>root</cite> haklarına sahipseniz Python3’ü yetkili kullanıcı olarak kurmanızı tavsiye ederim.</p>
<div class="section" id="root-haklari-ile-kurulum">
<h4>root Hakları İle Kurulum<a class="headerlink" href="#root-haklari-ile-kurulum" title="Bu başlık için kalıcı bağlantı">¶</a></h4>
<p>Python’ı kurmadan önce sistemimizde bulunması gereken bazı programlar var.
Aslında bu programlar olmadan da Python kurulabilir, ancak eğer bu programları kurmazsanız Python’ın bazı özelliklerinden yararlanamazsınız.
Bu programlar şunlardır:</p>
<blockquote>
<div><ol class="arabic simple">
<li><p>tcl-dev</p></li>
<li><p>tk-dev</p></li>
<li><p>zlib1g-dev</p></li>
<li><p>ncurses-dev</p></li>
<li><p>libreadline-dev</p></li>
<li><p>libdb-dev</p></li>
<li><p>libgdbm-dev</p></li>
<li><p>libzip-dev</p></li>
<li><p>libssl-dev</p></li>
<li><p>libsqlite3-dev</p></li>
<li><p>libbz2-dev</p></li>
<li><p>liblzma-dev</p></li>
</ol>
</div></blockquote>
<p>Bu programları, kullandığınız GNU/Linux dağıtımının paket yöneticisi aracılığıyla kurabilirsiniz.
Yalnız paket adlarının ve gerekli paket sayısının dağıtımlar arasında farklılık gösterebileceğini unutmayın.
Yukarıdaki liste Ubuntu için geçerlidir.
Mesela yukarıda <cite>tcl-dev</cite> olarak verdiğimiz paket adı başka bir dağıtımda sadece <cite>tcl</cite> olarak geçiyor ya da yukarıdaki paketlerin bazıları kullandığınız dağıtımda halihazırda kurulu olduğu için sizin daha az bağımlılık kurmanız gerekiyor olabilir.</p>
<p>Ubuntu’da yukarıdaki paketlerin hepsini şu komutla kurabilirsiniz:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>sudo apt-get install tcl-dev tk-dev zlib1g-dev ncurses-dev libreadline-dev libdb-dev libgdbm-dev libzip-dev libssl-dev libsqlite3-dev libbz2-dev liblzma-dev
</pre></div>
</div>
<p>Yukarıdaki programları kurduktan sonra <a class="reference external" href="https://www.python.org/ftp/python/3.7.0">https://www.python.org/ftp/python/3.7.0</a> adresine gidiyoruz.
Bu adreste, üzerinde ‘Python-3.7.0.tar.xz’ yazan bağlantıya tıklayarak sıkıştırılmış kurulum dosyasını bilgisayarımıza indiriyoruz.</p>
<p>Daha sonra bu sıkıştırılmış dosyayı açıyoruz.
Açılan klasörün içine girip, orada ilk olarak şu komutu veriyoruz:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>./configure
</pre></div>
</div>
<p>Bu komut, Python programlama dilinin sisteminize kurulabilmesi için gereken hazırlık aşamalarını gerçekleştirir.
Bu betiğin temel olarak yaptığı iş, sisteminizin Python programlama dilinin kurulmasına uygun olup olmadığını, derleme işlemi için gereken yazılımların sisteminizde kurulu olup olmadığını denetlemektir.
Bu betik ayrıca, bir sonraki adımda gerçekleştireceğimiz inşa işleminin nasıl yürüyeceğini tarif eden <em>Makefile</em> adlı bir dosya da oluşturur.</p>
<p>Bu arada bu komutun başındaki <cite>./</cite> işareti, o anda içinde bulunduğunuz dizinde yer alan <cite>configure</cite> adlı bir betiği çalıştırmanızı sağlıyor.
Eğer yalnızca <code class="docutils literal notranslate"><span class="pre">configure</span></code> komutu verirseniz, işletim sistemi bu betiği PATH dizinleri içinde arayacak ve bulamayacağı için de hata verecektir.</p>
<p><code class="docutils literal notranslate"><span class="pre">./configure</span></code> komutu hatasız olarak tamamlandıktan sonra ikinci olarak şu komutu veriyoruz:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>make
</pre></div>
</div>
<p>Burada aslında <code class="docutils literal notranslate"><span class="pre">./configure</span></code> komutu ile oluşan <em>Makefile</em> adlı dosyayı <cite>make</cite> adlı bir program aracılığıyla çalıştırmış oluyoruz.
<code class="docutils literal notranslate"><span class="pre">make</span></code> bir sistem komutudur.
Bu komutu yukarıdaki gibi parametresiz olarak çalıştırdığımızda <code class="docutils literal notranslate"><span class="pre">make</span></code> komutu, o anda içinde bulunduğumuz dizinde bir <em>Makefile</em> dosyası arar ve eğer böyle bir dosya varsa onu çalıştırır.
Eğer bir önceki adımda çalıştırdığımız <code class="docutils literal notranslate"><span class="pre">./configure</span></code> komutu başarısız olduysa, dizinde bir <em>Makefile</em> dosyası oluşmayacağı için yukarıdaki <code class="docutils literal notranslate"><span class="pre">make</span></code> komutu da çalışmayacaktır.
O yüzden derleme işlemi sırasında verdiğimiz komutların çıktılarını takip edip, bir sonraki aşamaya geçmeden önce komutun düzgün sonlanıp sonlanmadığından emin olmamız gerekiyor.</p>
<p><code class="docutils literal notranslate"><span class="pre">make</span></code> komutunun yaptığı iş, Python programlama dilinin sisteminize kurulması esnasında sistemin çeşitli yerlerine kopyalanacak olan dosyaları inşa edip oluşturmaktır.
Bu komutun tamamlanması, kullandığınız bilgisayarın kapasitesine bağlı olarak biraz uzun sürebilir.</p>
<p><code class="docutils literal notranslate"><span class="pre">make</span></code> komutu tamamlandıktan sonra, komut çıktısının son satırlarına doğru şöyle bir uyarı mesajı görebilirsiniz:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>Python build finished, but the necessary bits to build these modules were not found:
[burada eksik olan modül veya modüllerin adları sıralanır]
</pre></div>
</div>
<p>Burada Python, sistemimizde bazı paketlerin eksik olduğu konusunda bizi uyarıyor.
Uyarı mesajında bir veya daha fazla paketin eksik olduğunu görebilirsiniz.
Eğer öyleyse, eksik olduğu bildirilen bütün paketleri kurmamız gerekiyor.</p>
<p>Gerekli paketi ya da paketleri kurduktan sonra <code class="docutils literal notranslate"><span class="pre">make</span></code> komutunu tekrar çalıştırıyoruz.
Endişe etmeyin, <code class="docutils literal notranslate"><span class="pre">make</span></code> komutunu ikinci kez verdiğimizde komutun tamamlanması birincisi kadar uzun sürmez.
Eğer bu komutu ikinci kez çalıştırdığınızda yukarıdaki uyarı mesajı kaybolduysa şu komutla yolunuza devam edebilirsiniz:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>sudo make altinstall
</pre></div>
</div>
<p>Daha önce kaynaktan program derlemiş olan GNU/Linux kullanıcılarının eli, <code class="docutils literal notranslate"><span class="pre">make</span></code> komutundan sonra <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code> komutunu vermeye gitmiş olabilir.
Ama burada bizim <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code> yerine <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">altinstall</span></code> komutunu kullandığımıza dikkat edin.
<code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">altinstall</span></code> komutu, Python kurulurken klasör ve dosyalara sürüm numarasının da eklenmesini sağlar.
Böylece yeni kurduğunuz Python, sistemdeki eski Python3 sürümünü silip üzerine yazmamış olur ve iki farklı sürüm yan yana varolabilir.
Eğer <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">altinstall</span></code> yerine <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code> komutunu verirseniz sisteminizde zaten varolan eski bir Python3 sürümüne ait dosya ve dizinlerin üzerine yazıp silerek o sürümü kullanılamaz hale getirebilirsiniz.
Bu da sistemde beklenmedik problemlerin ortaya çıkmasına yol açabilir.
Bu önemli ayrıntıyı kesinlikle gözden kaçırmamalısınız.</p>
<p>Derleme aşamalarının hiçbirinde herhangi bir hata mesajı almadıysanız kurulum başarıyla gerçekleşmiş ve sisteminize Python programlama dilinin 3.x sürümü kurulmuş demektir.</p>
</div>
<div class="section" id="yetkisiz-kullanici-olarak-kurulum">
<h4>Yetkisiz Kullanıcı Olarak Kurulum<a class="headerlink" href="#yetkisiz-kullanici-olarak-kurulum" title="Bu başlık için kalıcı bağlantı">¶</a></h4>
<p>Elbette <code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">make</span> <span class="pre">altinstall</span></code> komutunu verip Python’ı kurabilmek için <cite>root</cite> haklarına sahip olmanız gerekiyor.
Ama eğer kullandığınız sistemde bu haklara sahip değilseniz Python’ı bu şekilde kuramazsınız.
Kısıtlı haklara sahip olduğunuz bir sistemde Python’ı ancak kendi ev dizininize (<code class="docutils literal notranslate"><span class="pre">$HOME</span></code>) kurabilirsiniz.</p>
<p>Eğer Python’ı yetkisiz kullanıcı olarak kuracaksanız, öncelikle yukarıda bahsettiğimiz Python bağımlılıklarının sisteminizde kurulu olup olmadığını kontrol etmeniz lazım.
Kullandığınız sistemde herhangi bir Python sürümü halihazırda kuruluysa, bu bağımlılıklar da muhtemelen zaten kuruludur.
Ama değilse, bunları kurması için ya sistem yöneticisine ricada bulunacaksınız, ya da bu bağımlılıkları da tek tek kendi ev dizininize kuracaksınız.
Eğer sistem yöneticisini bu bağımlılıkları kurmaya ikna edemezseniz, internet üzerinden bulabileceğiniz bilgiler yardımıyla bu bağımlılıkları tek tek elle kendiniz kurabilirsiniz.
Ancak bu işlemin epey zaman alacağını ve süreç sırasında pek çok başka bağımlılıkla da karşılacağınızı söyleyebilirim.
O yüzden ne yapıp edip sistem yöneticisini bağımlılıkları kurmaya ikna etmenizi tavsiye ederim…
Tabii sistem yöneticisini bu bağımlılıkları kurmaya ikna edebilirseniz, istediğiniz Python sürümünü de kurmaya ikna edebileceğinizi düşünebiliriz!
Ama biz burada sizin Python’ı kendinizin kuracağını varsayarak yolumuza devam edelim.</p>
<p>Python’ı yetkisiz olarak kurmak, <cite>root</cite> haklarıyla kurmaya çok benzer.
Aralarında yalnızca bir-iki ufak fark vardır.
Mesela Python’ı yetkisiz kullanıcı olarak kurarken, <code class="docutils literal notranslate"><span class="pre">./configure</span></code> komutunu şu şekilde vermeniz gerekiyor:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>./configure --prefix=$HOME/python
</pre></div>
</div>
<p>Python’ı <cite>root</cite> haklarıyla kurduğunuzda Python <cite>/usr</cite> dizini altına kurulacaktır.
Ancak siz yetkisiz kullanıcı olduğunuz için <cite>/usr</cite> dizinine herhangi bir şey kuramazsınız.
İşte bu yüzden, <cite>configure</cite> betiğine verdiğimiz <cite>–prefix</cite> parametresi yardımıyla Python’ı, yazma yetkimiz olan bir dizine kuruyoruz.
Mesela yukarıdaki komut Python’ın <cite>/usr</cite> dizinine değil, ev dizininiz içinde <cite>python</cite> adlı bir klasöre kurulmasını sağlayacaktır.
Elbette siz <cite>python</cite> yerine farklı bir dizin adı da belirleyebilirsiniz.
Burada önemli olan nokta, <cite>–prefix</cite> parametresine vereceğiniz dizin adının, sizin yazmaya yetkili olduğunuz bir dizin olmasıdır.</p>
<p>Bu komutu çalıştırdıktan sonra <code class="docutils literal notranslate"><span class="pre">make</span></code> komutunu normal bir şekilde veriyoruz.
Bunun ardından da <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code> (veya duruma göre <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">altinstall</span></code>) komutuyla Python’ı ev dizinimize kuruyoruz.
Burada <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code> komutunu <code class="docutils literal notranslate"><span class="pre">sudo</span></code>’suz kullandığımıza dikkat edin.
Çünkü, dediğimiz gibi, siz yetkili kullanıcı olmadığınız için <code class="docutils literal notranslate"><span class="pre">sudo</span></code> komutunu kullanamazsınız.</p>
<p>Python’ı bu şekilde ev dizininiz altında bir klasöre kurduğunuzda Python ile ilgili bütün dosyaların bu klasör içinde yer aldığını göreceksiniz.
Bu klasörü dikkatlice inceleyip neyin nerede olduğuna aşinalık kazanmaya çalışın.
Eğer mümkünse <cite>root</cite> hakları ile kurulmuş bir Python sürümünü inceleyerek, dosyaların iki farklı kurulum türünde nerelere kopyalandığını karşılaştırın.</p>
<p>Böylece Python programlama dilini bilgisayarımıza nasıl kuracağımızı öğrenmiş olduk.
Ama bu noktada bir uyarı yapmadan geçmeyelim:
Python özellikle bazı GNU/Linux dağıtımlarında pek çok sistem aracıyla sıkı sıkıya bağlantılıdır.
Yani Python, kullandığınız dağıtımın belkemiği durumunda olabilir.
Bu yüzden Python’ı kaynaktan derlemek bazı riskler taşıyabilir.
Eğer yukarıda anlatıldığı şekilde, kaynaktan Python derleyecekseniz, karşı karşıya olduğunuz risklerin farkında olmalısınız.
Ayrıca GNU/Linux üzerinde kaynaktan program derlemek konusunda tecrübeli değilseniz ve eğer yukarıdaki açıklamalar size kafa karıştırıcı geliyorsa, mesela ‘Ben bu komutları nereye yazacağım?’ diye bir soru geçiyorsa aklınızdan, kesinlikle dağıtımınızla birlikte gelen Python sürümünü kullanmalısınız.
Python sürümlerini başa baş takip ettiği için, ben size Ubuntu GNU/Linux’u denemenizi önerebilirim.
Ubuntu’nun depolarında Python’ın en yeni sürümlerini rahatlıkla bulabilirsiniz.
Ubuntu’nun resmi sitesine <a class="reference external" href="http://www.ubuntu.com">ubuntu.com</a> adresinden, yerel Türkiye sitesine ise <a class="reference external" href="http://forum.ubuntu-tr.net/">forum.ubuntu-tr.net</a> adresinden ulaşabilirsiniz.
Eğer şu anda kullandığınız GNU/Linux dağıtımından vazgeçmek istemiyorsanız, sabit diskinizden küçük bir bölüm ayırıp bu bölüme sadece Python çalışmalarınız için Ubuntu dağıtımını da kurmayı tercih edebilirsiniz.</p>
<p>Yalnız küçük bir uyarı daha yapalım.
Kaynaktan kurulum ile ilgili bu söylediklerimizden, Python’ın GNU/Linux’a kesinlikle kaynaktan derlenerek kurulmaması gerektiği anlamı çıkmamalı.
Yukarıdaki uyarıların amacı, kullanıcının Python’ı kaynaktan derlerken sadece biraz daha dikkatli olması gerektiğini hatırlatmaktır.
Örneğin bu satırların yazarı, kullandığı Ubuntu sisteminde Python3’ü kaynaktan derleyerek kullanmayı tercih ediyor ve herhangi bir problem yaşamıyor.</p>
<p>Bu önemli uyarıları da yaptığımıza göre gönül rahatlığıyla yolumuza devam edebiliriz.</p>
<p>Kurduğumuz yeni Python’ı nasıl çalıştıracağımızı biraz sonra göreceğiz.
Ama önce Windows kullanıcılarının Python3’ü nasıl kuracaklarına bakalım.</p>
</div>
</div>
<div class="section" id="surum-yoneticisi-ile-kurulum-pyenv">
<h3>Sürüm Yöneticisi ile Kurulum (pyenv)<a class="headerlink" href="#surum-yoneticisi-ile-kurulum-pyenv" title="Bu başlık için kalıcı bağlantı">¶</a></h3>
<p>Sisteminize bir veya birden fazla Python sürümü kurmak istiyorsunuz fakat root hakları, kaynaktan sürüm derlemeleri vb. işlemler gözünüzü mü korkutuyor? Bütün bu işlemleri çok daha hızlı, pratik ve güvenli bir şekilde <cite>pyenv</cite> ile gerçekleştirebilirsiniz. <cite>pyenv</cite> sisteminizde birden fazla Python sürümünü kullanabilmenizi sağlayan ve birçok kolaylığı da beraberinde getiren bir araçtır. Bunun için öncelikle <cite>pyenv-installer</cite> ile sistemimize <cite>pyenv</cite> kurmamız gerekmektedir. Kurulum için aşağıdaki komutu çalıştırmanız yeterlidir:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>curl https://pyenv.run | bash
</pre></div>
</div>
<p>Kurulum tamamlandıktan sonra aşağıdaki şekilde bir mesaj çıkacaktır:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span># Load pyenv automatically by adding
# the following to ~/.bashrc:
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
</pre></div>
</div>
<p>Buradaki son 3 satırı ana dizininizdeki <code class="docutils literal notranslate"><span class="pre">.bashrc</span></code> dosyanızın <em>(veya farklı bir shell kullanıyorsanız ilgili dosyanın)</em> sonuna eklemeniz gerekmektedir. Eklemeyi yapıp kaydettikten sonra <cite>pyenv</cite>’i kullanmaya başlamak için terminali yeniden başlatmanız veya terminale <code class="docutils literal notranslate"><span class="pre">source</span> <span class="pre">~/.bashrc</span></code> yazmanız yeterlidir.</p>
<p><cite>pyenv</cite> ile yükleyebileceğiniz Python sürümlerini listeleyebilmek için tek yapmanız gereken şu komutu çalıştırmaktır:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>pyenv install --list
</pre></div>
</div>
<p>Yalnızca 3.8.x sürümlerini listelemek içinse:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>pyenv install --list |grep " 3.8.*"
</pre></div>
</div>
<p>Komutunu çalıştırabilirsiniz. Eğer bütün sürümleri listelediyseniz görebileceğiniz üzere, <cite>pyenv</cite> ile kurabileceğiniz Python sürümü sayısı oldukça fazladır. Bu sürümlerden herhangi bir tanesini kurmadan önce <cite>pyenv</cite>’in kurulumları tamamlayabilmesi için ihtiyaç duyduğu bağımlılıkları kurmanızı tavsiye ederim. Aksi takdirde kurulumu bekleyip hata alma olasılığınız yüksektir. O hata mesajı da sizi şu linke yönlendirecektir: <a class="reference external" href="https://github.com/pyenv/pyenv/wiki/Common-build-problems">(pyenv | Sık Karşılaşılan Hatalar)</a></p>
<div class="section" id="pyenv-bagimliliklarin-kurulumu">
<h4>pyenv Bağımlılıkların Kurulumu<a class="headerlink" href="#pyenv-bagimliliklarin-kurulumu" title="Bu başlık için kalıcı bağlantı">¶</a></h4>
<ul>
<li><p>Ubuntu/Debian:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>sudo apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev libffi-dev liblzma-dev python-openssl git
</pre></div>
</div>
</li>
<li><p>Fedora/CentOS/RHEL:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>sudo dnf install zlib-devel bzip2 bzip2-devel readline-devel sqlite \
sqlite-devel openssl-devel xz xz-devel libffi-devel findutils
</pre></div>
</div>
</li>
<li><p>Arch ve türevleri:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>pacman -S --needed base-devel openssl zlib bzip2 readline sqlite curl \
llvm ncurses xz tk libffi python-pyopenssl git
</pre></div>
</div>
</li>
</ul>
</div>
<div class="section" id="yeni-surumlerin-kurulumu">
<h4>Yeni Sürümlerin Kurulumu<a class="headerlink" href="#yeni-surumlerin-kurulumu" title="Bu başlık için kalıcı bağlantı">¶</a></h4>
<p><cite>pyenv</cite> için gerekli ayarları yaptıktan sonra yeni bir Python sürümü kurabilmek için tek yapmanız gereken <code class="docutils literal notranslate"><span class="pre">pyenv</span> <span class="pre">install</span> <span class="pre"><python-sürümü></span></code> şeklinde bir komut çalıştırmaktır. <code class="docutils literal notranslate"><span class="pre"><python-sürümü></span></code> kısmına yazağımız sürüm bilgisi <code class="docutils literal notranslate"><span class="pre">pyenv</span> <span class="pre">install</span> <span class="pre">--list</span></code> sonuçları ile aynı isimde olmalıdır. Python 3.8.5 sürümünü kurmak için yapmanız gereken aşağıdaki komutu çalıştırmaktır:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>pyenv install 3.8.5
</pre></div>
</div>
<p>Bu komut ile <code class="docutils literal notranslate"><span class="pre">3.8.5</span></code> sürümü sisteminize yüklenecektir.</p>
</div>
<div class="section" id="yuklenen-surumun-kullanimi">
<h4>Yüklenen Sürümün Kullanımı<a class="headerlink" href="#yuklenen-surumun-kullanimi" title="Bu başlık için kalıcı bağlantı">¶</a></h4>
<p>Yüklediğiniz sürümün doğrulamasını yapmak için <code class="docutils literal notranslate"><span class="pre">pyenv</span> <span class="pre">versions</span></code> komutunu çalıştırabilirsiniz. Eğer yükleme uygun bir şekilde tamamlandı ise komutu çalıştırdığınızda görmeniz gereken çıktı şu şekildedir:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>* system
3.8.5
</pre></div>
</div>
<p><cite>*</cite> işareti hali hazırda aktif olan sürümü temsil etmektedir. Kurduğunuz sürümü aktif olarak kullanabilmek için çalıştırmanız gereken komut şudur:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>pyenv global 3.8.5
</pre></div>
</div>
<p><cite>pyenv</cite> ile temel seviyede Python yükleme ve etkinleştirme kısmı bu şekilde özetlenebilir. <code class="docutils literal notranslate"><span class="pre">pyenv</span></code> kullanımıyla ilgili detaylara <a class="reference external" href="calistirma.html#gnu-linux-ta-farkli-surumleri-birlikte-kullanmak">GNU/Linux’ta Farklı Sürümleri Birlikte Kullanmak</a> kısmında değineceğiz.</p>
</div>
</div>
</div>
<div class="section" id="windows-kullanicilari">
<h2>Windows Kullanıcıları<a class="headerlink" href="#windows-kullanicilari" title="Bu başlık için kalıcı bağlantı">¶</a></h2>
<p>Windows sürümlerinin hiçbirinde Python kurulu olarak gelmez.
O yüzden Windows kullanıcıları, Python’ı sitesinden indirip kuracak.</p>
<p>Bunun için öncelikle <a class="reference external" href="http://www.python.org/downloads">http://www.python.org/downloads</a> adresine gidiyoruz.</p>
<p>Bu adrese gittiğinizde, üzerinde ‘Download Python 3.7.0’ yazan bir düğme göreceksiniz.
Daha önce de söylediğimiz gibi, eğer bir Python sürüm numarası ‘2’ ile başlıyorsa o sürüm 2.x serisine, yok eğer ‘3’ ile başlıyorsa 3.x serisine aittir.
Dolayısıyla bu düğme Python3 sürümünü içerir.</p>
<p>Bu düğmeye tıklıyoruz.
Bu düğmeye tıkladığınızda bilgisayarınıza <cite>.exe</cite> uzantılı kurulum dosyası inecek.
Bu dosyaya çift tıklayarak kurulum programını başlatabilirsiniz.</p>
<div class="admonition note">
<p class="admonition-title">Not</p>
<p>Eğer indireceğiniz Python sürümünün mimarisini ve sürümünü kendiniz seçmek isterseniz <a class="reference external" href="https://www.python.org/ftp/python/3.7.0">https://www.python.org/ftp/python/3.7.0</a> adresinden kendinize uygun olan sürümü bulup indirebilirsiniz.</p>
</div>
<p>Kurulum dosyasına çift tıkladığınızda karşınıza ilk gelen ekranda, pencerenin alt tarafında şu kutucukları göreceksiniz:</p>
<blockquote>
<div><ol class="arabic simple">
<li><p>Install launcher for all users (recommended)</p></li>
<li><p>Add Python 3.7 to PATH</p></li>
</ol>
</div></blockquote>
<p>Burada ilk kutucuk zaten seçilidir.
Bunu bu şekilde bırakabilirsiniz.
İkinci kutucuk ise Python’ı yola eklememizi, böylece yalnızca <code class="docutils literal notranslate"><span class="pre">python</span></code> komutu vererek Python’ı başlatabilmemizi sağlayacak.
O yüzden oradaki ikinci kutucuğu da işaretliyoruz.</p>
<p>Aynı pencerenin üst tarafında ise şu seçenekleri göreceksiniz:</p>
<blockquote>
<div><ol class="arabic simple">
<li><p>-> Install Now</p></li>
<li><p>-> Customize Installation</p></li>
</ol>
</div></blockquote>
<p>Burada ‘Install Now’ yazan kısma tıklayarak kurulumu başlatıyoruz.</p>
<p>Eğer Python’ın bilgisayarda nereye kurulacağını ve başka birtakım kurulum özelliklerini değiştirmek istiyorsanız ‘Customize Installation’ yazılı kısma tıklayabilirsiniz.
Ben bu kitapta sizin ‘Install Now’ yazan kısma tıklayarak kurulum yaptığınızı varsayacağım.</p>
<div class="admonition note">
<p class="admonition-title">Not</p>
<p>Python’ın resmi sitesinde dolaşırken kurulum dosyaları arasında, ‘web-based installer’ (web tabanlı kurulum betiği) adlı bir kurulum dosyası görebilirsiniz.
Bu kurulum dosyası, Python’ın çalışması için gereken dosyaları kurulum esnasında internetten indirip kuran, 1MB’dan küçük bir kurulum programı içerir.
Dolayısıyla eğer kurulumu bu dosyadan yapacaksanız, kesintisiz bir internet bağlantısına ihtiyacınız olacak.</p>
</div>
<div class="admonition warning">
<p class="admonition-title">Uyarı</p>
<p>Eğer Windows’ta Python’ı kurmaya çalışırken hata alıyorsanız, muhtemelen işletim sisteminiz güncel değildir.
Örneğin Windows 7’de Python kurabilmeniz için, SP1 (Service Pack 1) kurulu olmalıdır.
Windows güncellemelerini kurduktan sonra Python’ı kurmayı tekrar deneyin. Ancak Windows XP kullanıyorsanız kurabileceğiniz en yüksek sürüm, Python 3.4’tür.
Ne yazık ki Windows XP artık desteklenmiyor.</p>
</div>
</div>
<div class="section" id="python-kurulum-ve-calisma-dizini">
<h2>Python Kurulum ve Çalışma Dizini<a class="headerlink" href="#python-kurulum-ve-calisma-dizini" title="Bu başlık için kalıcı bağlantı">¶</a></h2>
<p>Python programlama dilini, kullandığımız işletim sistemine nasıl kurabileceğimizi bilmek kadar önemli bir konu da Python’ı hangi dizine kurduğumuzu bilmektir.
Zira programcılık maceramız boyunca karşılaşacağımız bazı sorunlar, Python’ın kurulu olduğu dizine gitmemizi gerektirecek, üstelik kendi yazdığımız bazı programlarda da Python’ın kurulu olduğu dizinde çeşitli işlemler yapmak ihtiyacı duyacağız.
Ayrıca bazı durumlarda, o anda çalışan Python sürümünün hangi konumdan çalıştığını tespit etmemiz de gerekebilir.</p>
<p>İşte bu sebeplerden, Python’ın hangi dizine kurulduğunu mutlaka biliyor olmamız lazım.</p>
<p>Python’ın, işletim sisteminizde hangi dizine kurulduğu, Python’ı nasıl kurduğunuza bağlı olarak farklılık gösterir.</p>
<p>GNU/Linux dağıtımlarında Python genellikle <cite>/usr/lib/python</cite><cite>3.7</cite> dizininde kurulur.
Ama elbette, eğer siz Python’ı kaynaktan derlediyseniz, derleme sırasında <cite>configure</cite> betiğine verdiğiniz <cite>–prefix</cite> parametresi yardımıyla Python’ın kurulum dizinini kendiniz de belirlemiş olabilirsiniz.</p>
<p>Windows’ta Python programlama dilini aynen bu kitapta gösterdiğimiz şekilde kurduysanız, Python <code class="docutils literal notranslate"><span class="pre">%LOCALAPPDATA%\Programs\Python</span></code> dizini içine kurulacaktır.
Ancak eğer kurulum penceresinde ‘Customize Installation’ düğmesine basarak kurulumu özelleştirdiyseniz ve ‘Install for all users’ seçeneğini işaretlediyseniz Python <cite>%PROGRAMFILES%</cite> veya <cite>%PROGRAMFILES(x86)</cite> adlı çevre değişkenlerinin işaret ettiği dizin içine kurulacaktır.</p>
</div>
</div>
<div class='glyph'><a href='https://yazbel.com'>♣</a></div>
<div class='extrarelbar'>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Gezinti</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="calistirma.html" title="Python Nasıl Çalıştırılır?"
>sonraki</a></li>
<li class="right" >
<a href="python_hakkinda.html" title="Python Hakkında"
>önceki</a> |</li>
<li class="nav-item nav-item-0"><a href=".">⌂</a></li>
<li class="nav-item nav-item-this"><a href="">Python Nasıl Kurulur?</a></li>
</ul>
</div> </div>
<div class='addcomment'>Yorumlar</div>
<div class='how-to-use'>
<h3>Önemli Not</h3>
Eğer yazdığınız yorum içinde kod kullanacaksanız, kodlarınızı
<span class='tag'><pre><code></span> etiketleri içine alın. Örneğin:
<pre>
<span class='tag'><pre><code class="python"></span>
<span class='keyword'>print</span>(<span class='string'>"Merhaba Dünya!"</span>)
<span class='tag'></code></pre></span>
</pre>
</div>
<div id="disqus_thread"></div>
<script type="text/javascript">
/* * * CONFIGURATION VARIABLES * * */
var disqus_shortname = 'istihza';
/* * * DON'T EDIT BELOW THIS LINE * * */
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" rel="nofollow">comments powered by Disqus.</a></noscript>
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-4eca48eb2d83faf9" async="async"></script>
<div class="clearer"></div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Gezinti</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="calistirma.html" title="Python Nasıl Çalıştırılır?"
>sonraki</a></li>
<li class="right" >
<a href="python_hakkinda.html" title="Python Hakkında"
>önceki</a> |</li>
<li class="nav-item nav-item-0"><a href=".">⌂</a></li>
<li class="nav-item nav-item-this"><a href="">Python Nasıl Kurulur?</a></li>
</ul>
</div>
<div class="footer">
© Copyright 2007-2020, Fırat Özgül | <a href="https://yazbel.com">yazbel.com</a>.
Son güncelleme: 08.08.2020.
<a href="http://sphinx-doc.org/">Sphinx</a> 3.2.0 kullanılarak oluşturuldu.
<br>
<br>
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/"><img
alt="Creative Commons License" style="border-width:0"
src="https://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png" /></a><br />
<br>
</div>
<!-- Start of StatCounter Code for Default Guide -->
<script type="text/javascript">
var sc_project=10396326;
var sc_invisible=1;
var sc_security="fb5cd679";
var scJsHost = (("https:" == document.location.protocol) ?
"https://secure." : "http://www.");
document.write("<sc"+"ript type='text/javascript' src='" +
scJsHost+
"statcounter.com/counter/counter.js'></"+"script>");
</script>
<noscript><div class="statcounter"><a title="hit counter"
href="http://statcounter.com/" target="_blank"><img
class="statcounter"
src="http://c.statcounter.com/10396326/0/fb5cd679/1/"
alt="hit counter"></a></div></noscript>
<!-- End of StatCounter Code for Default Guide -->
</body>
</html>