<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Serhat</title>
    <description>The latest articles on DEV Community by Serhat (@hardrez).</description>
    <link>https://dev.to/hardrez</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F443279%2F03f34b39-0c4d-45ac-a48a-02ea17a1e28b.png</url>
      <title>DEV Community: Serhat</title>
      <link>https://dev.to/hardrez</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hardrez"/>
    <language>en</language>
    <item>
      <title>Python Virtual Environment(sanal ortam) Ve Paket Yönetimi</title>
      <dc:creator>Serhat</dc:creator>
      <pubDate>Wed, 29 Jul 2020 22:27:38 +0000</pubDate>
      <link>https://dev.to/hardrez/python-virtual-environment-223d</link>
      <guid>https://dev.to/hardrez/python-virtual-environment-223d</guid>
      <description>&lt;h1&gt;
  
  
  Virtual Environment nedir ?
&lt;/h1&gt;

&lt;p&gt;Virual Environment, projelerimizde gerekli olan paketleri, sistemden bağımsız bir şekilde kurup, kullanmamızı olanak sağlayan bir yapıdır. En basit şekilde şöyle düşünebiliriz, gerekli bütün paketleri aslında proje için açmış olduğumuz dizine yüklüyor ve paketleri ihtiyaç halinde yine projenin içinde olduğu dizinden çekiyor. Bu bize neden gereklidir diye düşündüğümüzde şöyle bir senaryo üzerinden gidelim.&lt;br&gt;
Örneğin A projesinde bir X paketinin 1.2.1 versiyonunu kullanmamız gerekiyor, farklı bir B projesinde ise aynı X paketinin 2.1 versiyonuna ihtiyaç duyduğumuz bir senaryomuz var. Bu gibi durumlarda paket yönetimini kolaylaştırmak ve hata ile karşılaşma ihtimalini de düşürmek için virtual environment çok kullanışlı bir yapı olmuş oluyor. Bir paketi sildiğimizde veya yükselttiğimizde, o paketi kullanan diğer projelerin de etkilenmemesini sağlıyor. İstediğimiz projeye istediğimiz gibi paket kurabilir, silebilir, yükseltebiliriz ve diğer projeler bundan etkilenmez.&lt;/p&gt;
&lt;h1&gt;
  
  
  Kurulum
&lt;/h1&gt;

&lt;p&gt;Eğer sisteminizde yüklü değilse öncelikle pip3(python paket yöneticisi) yüklemeniz gerekmektedir.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nb"&gt;install &lt;/span&gt;python3-pip
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Python 2.X.X için de kurabilirsiniz. Onun için "python3-pip" yerine "python-pip" yazmanız yeterlidir. Eğer bilgisayarınızda her iki python sürümü için de yüklemek istiyorsanız, ikisi içinde ayrı ayrı komutları girmeniz gerekmektedir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Not:&lt;/strong&gt;Eğer sisteminizde virtual environment yüklü olup olmadığını kontrol etmek istiyorsanız bu komutu kullanabilirsiniz:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;virtualenv &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Siteminizde yüklü ise size version bilgisini döndürür, eğer yüklü değil ise "command not found" şeklinde bir hata ile karşılaşırsınız&lt;/p&gt;

&lt;p&gt;Gerekli pip3 kurulumunu da yaptıktan sonra artık virtual environment kurulumuna geçebiliriz.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;pip3 &lt;span class="nb"&gt;install &lt;/span&gt;virtualenv
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Önemli Not:&lt;/strong&gt; Eğer herhangi python 2.X.X sürümü ile çalışıyorsanız "pip3" argümanı yerine "pip" şeklinde kullanmanız gerekmektedir."pip3" python 3.X.X sürümlerine, "pip" ise diğer sürümlerine kurulum yapmaktadır.&lt;/p&gt;

&lt;p&gt;Virtual environment kurulduğundan emin olmak için tekrar kontrol edebiliriz.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;virtualenv &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Kurulum başarılı bir şekilde tamamlandıysa, bu komutun çıktısı olarak kurmuş olduğumuz virtual environment yapısının version bilgisini görebiliriz.&lt;/p&gt;

&lt;p&gt;Kurulum işlemimizi de doğruladıktan sonra artık geliştirme ortamımızı oluşturabiliriz. Örnek bir ortam için öncelikle masaüstüne "denemeEnv" adında dizin oluşturalım. Terminalimizi de bu dizin içerisinde açalım.&lt;br&gt;
Oluşturmuş olduğumuz bu dizine virtualenv kuralım ve sanal geliştirme ortamımızı oluşturacağız.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;virtualenv projeAdi
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Komutu ile bulunduğumuz dizine sanal geliştirme ortamımızı kurmuş olduk. Fakat henüz geliştirme ortamamız aktif değildir. Demek istediğimi uygulamada çok daha iyi anlayabilirsiniz.&lt;br&gt;
Geliştirme ortamımızı aktif hale getirmek için:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;source &lt;/span&gt;projeAdi/bin/activate
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;komutumuzu çalıştırıyoruz. Ve artık şunu görebiliriz&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="o"&gt;(&lt;/span&gt;projeAdi&lt;span class="o"&gt;)&lt;/span&gt; hardrez@pardus:~/Desktop/denemeEnv&lt;span class="err"&gt;$&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Gördüğünüz gibi komutlarımız artık "(projeAdi)" alanında çalışmaktadır.&lt;br&gt;
Burada "pip3/pip" ile kuracak olduğumuz bütün paketler sadece bu proje içerisinde yer almaktadır. &lt;br&gt;
Eğer bir başka bir projeye geçmek istiyorsak veya sanal ortamdan çıkmak istiyorsak:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;deactivate
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;komutu ile sanal ortamdan çıkabiliriz. Aktişleştirmek için ise az önce belirttiğimiz komut ile tekrar o projeye ait sanal ortama girebilirsiniz.&lt;/p&gt;

&lt;p&gt;Sanal ortamımızı aktif ettikten sonra, paket yöneticiniz ile hangi paketlerin kurulup kurulmadığını bu komutla kontrol edebiliriz.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;pip3 list
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Listeleme komutunun yanı sıra sadece yeni versionları çıkmış paketleri listelemek istiyorsak:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;pip3 list &lt;span class="nt"&gt;--outdated&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;komutu ile yükseltebileceğimiz paketlerin listesini de görebiliriz.&lt;/p&gt;

&lt;p&gt;Yüklü olan bir paketi yükseltmek için:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;pip3 &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--upgrade&lt;/span&gt; paketAdi
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;şeklinde komutumuzu kullanabiliriz.&lt;/p&gt;

&lt;p&gt;Sanal ortama paket yükelemek istediğimizde yine normalde kullandığımız şekilde:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;pip3 &lt;span class="nb"&gt;install &lt;/span&gt;paketAdi
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;istediğimiz paketimizi kurabiliriz.&lt;/p&gt;

&lt;p&gt;Öncesinde paket kaldırabildiğimizden de bahsetmiştik. Ve kaldırdığımız bu paketler sadece bu proje için kalkıyor, sistemde herhangi bir değişikliğe sebep olmuyor(sanal ortamda olduğunuz sürece)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;pip3 uninstall paketAdi
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;"paketAdi" kısmına kaldırmak istediğiniz paket adını girerek kaldırabiliriz.&lt;/p&gt;

&lt;p&gt;Virtual environment kullanımı basitçe bu şekildedir, birden fazla proje ile çalıştığınızda veya büyük projlerde önemini çok daha iyi anlayabilirsiniz.&lt;/p&gt;

</description>
      <category>python</category>
      <category>virtualenvironment</category>
      <category>linux</category>
    </item>
  </channel>
</rss>
