Özellikle tavsiye edilir! Sizi sorunlardan uzak tutmak için Python geliştirme ortamını optimize etmeye yönelik birkaç ipucu

Tam metin 2793 Kelimeler, tahmini öğrenme süresi 6 dakika

Resim kaynağı Unsplash

Python'da kodlama deneyimi mükemmel ve yeni sürümün yayınlanmasıyla daha iyi ve daha iyi hale geliyor! Benim için, Python tarafından sağlanan çok sayıda ücretsiz işlev kitaplığı, son derece okunabilir programlar ve yeni tanıtılan tür ek açıklamaları beni buna bağımlı yapıyor. Bununla birlikte, veri bilimcilerin Jupyter not defterlerini büyük ve dağınık hale getirmeleri veya anlaşılması zor bazı python dosyalarını yazmaları özellikle kolaydır. Ek olarak, bir proje aynı kitaplığın farklı sürümlerine bağlı olduğunda, genellikle sürüm çakışmaları ortaya çıkar. Yukarıdaki sorunları çözmek çok zaman alır ve genellikle diğer projelerde sorunlara neden olur. Bu tür sorunların önüne geçmek için çözüm bulmak ve kod yazmada kolaylık sağlamak gerekir.

Bu yazıda, okuyuculara yardımcı olmayı umarak yaygın olarak kullanılan araç ve teknikleri ayrıntılı olarak tanıtacağım.

Python geliştirme ortamı

Çevirmen

Python kullanırken en önemli yorumlayıcıyla başlayın. Elbette en sevdiğiniz Python sürümünü indirebilir ve her şeyi içine koyabilirsiniz. Peki ya programınız Python'un farklı sürümlerini gerektiriyorsa veya aynı üçüncü taraf modülün farklı sürümlerine bağlıysa ve birkaç program arasında sorunsuz bir şekilde geçiş yapmanız gerekiyorsa?

Pyenv yukarıdaki sorunları çözebilir.

Pyenv üç araç içerir, yazar bunlardan ikisini tanıtacaktır: pyenv (python'u kurmak için kullanılır) ve pyenv-virtualenv (global araçları yapılandırmak için kullanılır).

Pyenv'i aşağıdaki URL'den yükleyin.

curl https://pyenv.run | bash

Kurulumdan sonra, pyenv'i aygıtta kullanılabilir hale getirmek için .bashrc (veya .zshrc) dosyasına aşağıdaki kodu ekleyin.

exportPATH = "~ / .pyenv / bin: $ PATH"

eval "$ (pyenv init -)"

eval "$ (pyenv virtualenv-init -)"

Son olarak cihazı yeniden başlatın. Artık pypy ve anaconda dahil olmak üzere neredeyse tüm python yorumlayıcılarını kurmak için pyenv'i kullanabilirsiniz.

Pyenv'in bilgisayarda yalnızca yerel bir python ortamı oluşturduğuna dikkat edilmelidir. Bir python ortamı oluşturmak için çeşitli işlev kitaplıklarına ihtiyaç vardır. Ubuntu sistem bilgisayarlarında, çalışma sorunlarını önlemek için aşağıdaki kitaplıklar kurulmalıdır.

sudo apt-get installbuild-essential libsqlite3-dev sqlite3 bzip2 libbz2-dev zlib1g-dev libssl-dev openssllibgdbm-dev libgdbm-uyumlu-dev liblzma-dev libreadline-dev libncursesw5-devlibffi-dev uuid-dev

Şimdi, python yorumlayıcısını kurmak için aşağıdaki talimatları uygulamanız yeterlidir.

pyenv installVERSION_YOU_WOULD_LIKE_TO_INSTALL

Mevcut tüm sürümleri pyenv aracılığıyla listeleyebilirsiniz.

pyenv yükleme - listesi

Yukarıdaki işlemi daha spesifik hale getirmek için, python3.7.5'i buraya yükleyin ve varsayılan global yorumlayıcı olarak ayarlayın.

pyenv 3.7.5 kurulumu

pyenv global 3.7.5

Python sürümü komutunu girin ve ekranda Python 3.7.5 görüntülenecektir.

Bağımlılık Yönetimi (Bağımlılık Yönetimi)

Python'da bağımlılık yönetimi ağır bir iştir. Bu görevde yardımcı olabilecek birçok araç var.

En sık kullandığım araç Şiir.

Şiir, aşağıdaki görevleri kolayca tamamlamanıza yardımcı olabilir.

· Proje bağımlılıklarını yönetin

· Projeleri sanal ortamlar aracılığıyla ayırın

Kolayca uygulama ve işlev kitaplıkları oluşturun

Yazar şiiri aşağıdaki şekillerde yüklemenizi önerir:

curl -sSL https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py | python

Bağımlılık yönetiminin başka bir yolu da pip ve pyenv-virtualenv komutlarını kullanmaktır. Okuyucular sorabilir: Neden sadece pip kullanmıyoruz? Çünkü sadece pip kullanmak şiir ve onun bağımlılıklarını küresel ortama yerleştirebilir, ki bu ihtiyacınız olmayan veya istemediğiniz bir şey olabilir. Gerekli talimatlar aşağıdaki gibidir.

# 3.7.5'e dayalı araçlar adı verilen bir sanal ortam oluşturun

pyenv virtualenv 3.7.5 araçları

# Araçların sanal ortamına şiir yükleyin

pyenv araçları etkinleştir

pip kurulum şiiri

# Yüklü şiir sürümünü kontrol edin

şiir -versiyon

# Sanal ortamdan ayrıl

pyenv devre dışı bırak

# Bu henüz çalışmıyor

şiir -versiyon

# Dünya çapında mevcut olanlara araçlarınızın sanal ortamını ekleyin

pyenv global 3.7.5 araçları

# Şimdi işe yarıyor ve şiir kullanmaya başlayabilirsiniz

şiir -versiyon

İlk projeyi oluşturmak için şiiri kullanmadan önce, proje dizinindeki .venv klasöründe bir sanal ortam oluşturabilmeniz için önce yapılandırmanız önerilir. VsCode veya Pycharm gibi entegre geliştirme ortamlarını kullandığınızda, doğru yorumlayıcıyı hemen belirleyip seçebildikleri için çok kullanışlı hale gelir.

poetry configsettings.virtualenvs.in-project true

Yapılandırmayı yalnızca bir kez ayarlamanız gerektiğini ve ayar sonucunun genel ortamda tutulacağını unutmayın.

Nihayet şiirli bir proje oluşturmak için tüm hazırlıklarını tamamladım, harika! Bu projeye dsexample adını verdim, adın aptalca olduğunu biliyorum ama daha iyisini düşünerek zaman kaybetmek istemiyorum. Şiirin nasıl kullanılacağını göstermek için, pandas kitaplığının belirli bir sürümünü ve tüm ek gereksinimler için fastapi çerçevesini ekledim.

# Yeni bir projeyi başlatın

şiir yeni örnek

cd dsexample

# Modüller ekleyin ve sanal ortam oluşturun.

şiir pandalar ekle = 0.25 fastapi --ekstra tüm

# Git modülünü nasıl ekleyebileceğinize bir örnek olarak

şiir tf2-utils ekle --git git@github.com: Shawe82 / tf2-utils.git

Makalede önerilen araçları kullanan gerçek bir proje görmek istiyorsanız, lütfen Github depomuza gidin.

Biçim tutarlılığı ve okunabilirliği (Tutarlı Biçimlendirme ve Okunabilirlik)

Artık proje oluşturulduğuna göre kod eklemeye başlayacağız. İdeal olarak, kod tabanının formatı okunabilirliği ve anlaşılabilirliği sağlamak için tutarlı olmalıdır. Bu, özellikle kod tabanını çalıştıran başkaları olduğunda çok sıkıcı bir süreç olacaktır.

Ancak Siyah yukarıdaki sorunları çözebilir!

Black, programcıların python kodu yazarken temel içeriğe odaklanmasına olanak tanıyan bir araçtır. Programcıların manuel olarak biçimlendirme eklemesini önleyerek koda otomatik olarak biçimlendirme ekler. Siyah çok iyi çalıştığı için, onu dsexample'ye ekliyoruz ve tüm dosyalara biçimlendirme eklemesine izin veriyoruz.

# Siyahı kalkınma bağımlılığı olarak --dev ile ekliyoruz.

# üretim söz konusu olduğunda ona ihtiyacım var

şiir ekle --dev siyah = 19.3b0

# Mevcut üst düzey dsexample klasörünün içinde olduğumuzu varsayalım

şiir siyahtır.

Harika, şimdi tüm dosyalar çok düzgün görünüyor.

Tip Doğruluğu

Python 3.5'ten bu yana (yanlış hatırlıyorsam lütfen düzeltin), tür ek açıklamaları standart kitaplığın bir parçası haline geldi. Tür ek açıklamaları sayesinde, kod daha iyi anlaşılır, bakımı daha kolaydır ve daha az hataya açıktır. Hata yapmak neden kolay değil? Çünkü değişken ve fonksiyon türlerinin beklentileri karşılayıp karşılamadığını statik olarak kontrol edebilirsiniz. Tabii ki otomatik olarak yapılması gerekiyor.

İşte mypy.

Mypy, statik bir python kod denetleyicisidir, rolü hatalar oluşmadan önce onları bulmaktır. Projeye mypy eklemek ve kodu kontrol etmek için şiir kullanmak siyah eklemek kadar kolaydır.

ypy, --dev ile bir kalkınma bağımlılığı olarak

# üretim söz konusu olduğunda ona ihtiyacım var

şiir ekle - dev mypy

# Mevcut üst düzey dsexample klasörünün içinde olduğumuzu varsayalım

şiir benimle koşar.

Mypy'yi çalıştırmak da çok fazla soruna neden olabilir. Elbette, onu yalnızca önemsediğiniz hatalar hakkında uyarı verecek şekilde ayarlayabilirsiniz. Bu, projeye bir mypy.ini dosyası eklenerek elde edilebilir.

Otomasyonu Otomatikleştirin

Siyah ve mypy ile artık kodu manuel olarak biçimlendirmemize gerek kalmaz ve gereksiz hatalar önlenebilir. Ancak yine de bu iki aracı manuel olarak kullanmamız gerekiyor.Bu iki aracın da otomatikleştirilmesi gerekmez mi?

Evet!

Ön taahhüt her şeyi başarabilir.

Ön taahhüt aracı, kod depoya gönderilmeden önce kontroller gerçekleştirir (varsayılan olarak okuyucunun kodu git'in kontrolü altındadır). Kontrolde başarısız olan kodlar reddedilecektir. Bu şekilde, kod deposunda hiçbir zaman düzensiz veya yazılmamış kod ve hataları kontrol etmeniz gereken diğer kodlar olmayacaktır.

Şimdi pre-commit'i kuralım.

Şiiri doğrudan projeye yüklemek için kullanabilir veya yerel makinenize kurabilirsiniz. İkincisini tercih ederim çünkü ön taahhüt CI / CD sunucusunda değil, yalnızca yerel olarak kullanılır. Bunun yerine, siyah ve mypy CI / CD sunucusunda çalışır, bu nedenle bunları projenin dev bağımlılıklarına eklemek mantıklıdır. Yazar, mevcut bir araç sanal ortamı aracılığıyla kurmak için aşağıdaki yöntemi kullanmanızı önerir.

# Ön işlemeyi araçların sanal ortamına yükleyin

pyenv araçları etkinleştir

pip install pre-commit

# Sanal ortamdan ayrıl

pyenv devre dışı bırak

# Venv aracını zaten eklediğimiz için, doğrudan çalışacak

pre-commit --version

Ön işlemeyi kullanmak için, önce .pre-commit-config.yarm adlı bir dosyayı en üst düzey klasöre eklemeniz gerekir. Bu dosyada, çalıştırılması gereken tüm kancaları yapılandırmanız gerekir. Mypy ve Black ortamında dosya içeriği aşağıdaki gibidir.

repos: - repo: https://github.com/ambv/black rev: 19.3b0 hooks: -id: black language_version: python3.7- repo: https://github.com/pre-commit/mirrors-mypy rev : v0.740 kancalar: -id: mypy

Son olarak, kancayı ayarlamak için aşağıdaki komutu yürütmelisiniz.

# Üst düzey klasörde olduğunuzu varsayıyorum

önceden yükleme yükleme

Şimdi, hook fonksiyonu (hook) her işlemede çalışacaktır. Siyah aracının kanca işlevi yalnızca biçimi kontrol etmekle kalmaz, aynı zamanda dosyaya uygun şekilde biçimlendirme de ekler. Her yeni kanca işlevi eklediğinizde, başlangıçta tüm dosyalarda önceden el ile çalıştırmanız önerilir, çünkü yalnızca son gönderimden bu yana değiştirilen dosyalar üzerinde çalışabilir.

pre-commit run --all-files

Bu şekilde otomasyon aracının otomasyonu tamamlanmış olur.

sonuç olarak

Önemli şeylere odaklanmanıza yardımcı olacak birçok araç vardır. Yazar burada bunlardan sadece birkaçını tanıtıyor. Elbette dahası var. Umarım yeni bir şey öğrendikten sonra kodun kendisine daha fazla odaklanabilirsiniz.

Yorum Beğen Takip Et

AI öğrenme ve geliştirmenin kuru mallarını paylaşalım

Yeniden yazdırıyorsanız, lütfen arka planda bir mesaj bırakın ve yeniden yazdırma şartnamelerine uyun

Bilgi okuryazarlığı, üretimde Defter kullanımı alışılmadık bir uygulama mı?
önceki
Twitter - robotlarımızın birbirleriyle iletişim kurduğu yer
Sonraki
düşürmek! Size özel Kafka eğitiminiz burada, lütfen almaya dikkat edin
Changping metro hattının güney uzantısı tamamen başlatıldı ve Pekin kuzey-güney Shinkansen'i ekleyecek
Bugünün temel sesi Uçaklara veya gece kulüplerine izin verilmez! Wang Sicong yüksek tüketimle sınırlandırıldı
Hisse senetlerinde iyi olan insanlar ne kadar korkunç: boğaları ve ayıları geçmek için 20 hareketli ortalamaya güvenmek, döngü boğalarını bulmak için bir numara, toplamaya değer
"Avrupa kanı Çin asla yetişemeyecek" mi? Az önce, @Çin Bilimler Akademisi Otomasyon Enstitüsü bir bildiri yayınladı, reddedildi
"Zombiler" tarafından yenilmeyin! Kubernetes (K8s) ile düşünmeyi öğrenin
Ağır hacim "yemek çubukları hattını" kırıyor: Ana gücün nihai birikimi tamamladığını kanıtlıyor. Elinizde 50.000 küçük fon varsa, tahtanın üst limitini bekleyebilirsiniz.
Şiddetle tavsiye edilir! Her zaman, her yerde mutlu olabilmeniz için kod kalitesini artırmanın 6 yolu
Alım satım hacmi, borsada insanları yanıltmayacak tek göstergedir. "Gök, göz ve yer hacmi" modeliyle karşılaştığında, yüksek satış ve düşük alım sorun değildir.
"Onlar aynı kişi mi?" Kocası hastalıktan öldü "daha çok" bir eş doğdu ve taşınmaz da bölündü
Biz ve "gerçek" yapay zeka: ulaşılabilir veya bir asır uzakta
Bir "bisküvi satma" öyküsü, borsanın özünü anlatır: tüm hissedarlar kilitlenene kadar hisse senetleri neden düştü? Hisse senetlerinin on yıl sapacağını anlayın
To Top