Selamlar,
Ubuntu 22.04'de varsayılan olarak Python 3.10 geliyor ve benim yazdığım kod Python 3.10'da decimals hatası veriyorken 3.13'de tıkır tıkır çalışıyor.
3.13'ye nasıl yükseltebilirim?
Bütün apt gibi modüllerin de geçmesi gerekiyor.
Pyenv ile yaparsin.
Tabi daha etkili yollarda var UV paket yonetici gibi ama UV kullanimi her ne kadar kolay olsada ogrenmen gerekiyor. Bence bir noktada UV kesin ogren cunku, hem venv yani sanal ortam yaratma hem paython versionu gibi konulari tamamen cozuyorsun. En ideal cozum UV.
Pyenv'den yola gidersek:
Once gerekli paketleri yuklemelisin.
sudo apt update
sudo apt install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev \
libffi-dev liblzma-dev git
Pyenv kurulum
curl https://pyenv.run | bash
~/.bashrc eklenecek satilar.
nano ~/.bashrc komnutu ile acilan pencerenin en altina su kodlari eklemelisin.
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
bashrc degisiklikleri uygulamak icin
source ~/.bashrc
Pyenv yukleme bu kadar peki Python versiyonlari nasil oluyor?
pyenv install 3.13
ile belirli bir python versiyonunu yukleyebilirsin, istersen 10larcasini yukle.
Sistemde yuklu pythonlari ise
pyenv install --list
komutu ile ogreniyorsun.
Geriye tek yapman gereken istedigin python surumunu sistemde aktif etmek. O da global komutu ile yapiliyor.
pyenv global 3.13
Globalde kullanacagin python aktif ettikten sonra kodun calisir.
Ancak Pyenv soyle bir sikinti var.
Mesela
python -m venv venv seklinde bir sanal ortam yarattin diyelim. Buna gerek var. Neden dersen ubuntudasin sanal ortam kullanman onemli. Cunku artik son surum ubuntuda artik
pip insatall komutu ile global bir sekilde paket kuramiyorsun. Hata veriyor o yuzden sanal ortam kullanmalisin. Zaten bu kesin gerekli birsey.
Peki pyenv ile sanal ortam iliskisi ne?
pyenv global 3.13 ile global python surumu 3.13 iken sen
python -m venv venv sanal ortam olusturdugunda o sanal ortamdaki python 3.13 kuruluyor. Sen global python surumunu sonradan, pyenv global 3.12 olarak degistirsen de mevcut sanal ortam ilk kurdugun sanal ortam python 3.13 kalmis oluyor. Bunu untumamalisin.