MacOSX’de Çoklu Python Sürümleri ile Çalışmak

Standard

Merhaba,

Bu gün bir kodu test etmek için birden fazla sürüme ihtiyacım oldu. MacOSX işletim sisteminde python yüklemek için her seferinde dmg dosyasını indirmek, yüklemek gerektiğinden ve bu iş zaman aldığından daha kolay bir yolu olup olmadığını araştırırken istediğim çözüme ulaştım. Dilerim benim gibi ihtiyacı olanlar için faydası olur.

Pyenv adında bir program sayesinde, tıpkı Docker containerlarındaki gibi birden fazla major ve minör versiyonu 1 satırda indirip, virtualenv ile sistemden yalıtabiliyoruz.

Eğer brew kullanıyorsanız kurulum için;

$ brew update
$ brew install pyenv

Kurulumdan sonra pyenv’in her terminali açtığınızda otomatik olarak aktif olmasını istiyorsanız Home dizininizdeki .bash_profile (yoksa oluşturunuz) dosyasına aşağıdaki kodları ekleyebilirsiniz. Aksi halde her seferinde ;

pyenv init -

komutu ile initialize etmeniz gerekmektedir. (Türkçe tam karşılığı olmadığı için mecburen kullandım.)

Eklemek için bu komutu yazmanız yeterli;

$ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.bash_profile

Gelelim kullanımına;

Varolan sürümleri listelemek için;


1
$ pyenv install --list

İçerisinde sadece python sürümlerini değil aynı zamanda Anaconda ve Pypy gibi paketleri de barındırmakta. Bu paketlerin sürümlerinide tek komutla edinebiliyorsunuz.

Seçtiğiniz paketi yüklemek için;

pyenv install 3.4.3 # buraya istediğiniz versiyonu yazınız

İndirdiğiniz python versiyonlarını görüntülemek için;

pyenv versions

Pyenv’in bir diğer özelliği ise dosyalar içerisinde farklı python versiyonlarını varsayılan olarak atayabilmeniz, bu sayede ilgili dosyaya geçtiğinizde “python dosya.py” dediğiniz otomatik olarak ilgili sürümde başlatılması.

Bunun için gizli bir dosyaya ilgili(.python-version) versiyonu yazmakta pyenv. İstediğiniz dizine geçtikten sonra,

$pyenv local X.X.X

Yazdığınızda pyenv otomatik olarak orası için verdiğiniz sürümü atıyor. İşlemi iptal etmek için de;

pyenv local --unset

Yazarak işlemi geri alabilirsiniz.

Daha detaylı bilgi için, GitHub sayfasını inceleyebilirsiniz;

Simple Python version management
https://github.com/pyenv/pyenv
1.113 forks.
12.899 stars.
163 open issues.
Recent commits:

Bir sonraki yazımda görüşmek üzere 🙂

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir