Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Python Dependency Hell


roket adam

Öne çıkan mesajlar

Abiler, ben ıvır zıvır py işleri yapıyorum bu ara, hoşuma da gidiyor. Ancak çözemediğim şöyle bi sıkıntım var.

Kendi Mac'imde, pycharm üzerinde geliştiriyorum. Dışarıdan bir modül almam gerekirse pycharm konsolundan "pip install requests" diyerek mesela o modülü yükleyebiliyorum. Amma velakin aynı scripti dayının biri indirip denemek istediğinde, kendi sanal ortamını oluşturup teker teker bu modülleri yüklemesi lazım. Üstüne üstlük, işin içerisine farklı py versiyonları ve farklı dependency versiyonları da eklenince olay çok karışıyor. Mesela ben requests'in 1.3.5 versiyonuna göre kodu yazmışım, 1.3.6'da bir şeyler değişmiş son sürümü çekince kod çalışmıyor. Aynı durum py için de geçerli, halen neden python 2 ve 3 ayrı ayrı sürüm olarak mevcut kullanılıyor ve aralarında bu kadar major farklılıklar var anlayamıyorum. 

Siz bu işi nasıl çözüyorsunuz? Öyle bir şey istiyorum ki dayı kodu github'ımdan indirip çalıştırdığında, tüm dependency'ler ya indirilen kodumun içinde olsun, ya da o zamanki versiyonlar ile otomatikman kurulsun. Bu işin içinden çıkamadım, bazı yöntemler var görünüyor ama bir de sizlere sorayım dedim. Tenks e lot.

Link to comment
Sosyal ağlarda paylaş

virtualenvironment kullanmaya gecmelisin BIR AN ONCE. anlattigini okuyunca nutellayi yere devirmis yerden yiyen bebek canlandi gozumde ? birak baskasini kendin bile calistiramazsin o kodunu 1 ay sonra.

Hele bir de farkli isler icin python3.5 (maalesef) python3.7 ve python3.8 kurman gerekiyorsa ayni bilgisayara, daha igrenc bir boyut aliyor olaylar.

Link to comment
Sosyal ağlarda paylaş

Requirements.txt'i PyCharm'ın prof versiyonu otomatik oluşturuyor galiba; ama onu kullanamıyorsan al şu library'i kullan: https://pypi.org/project/pipreqs/

Direk command window/terminal üzerinden "pipreqs /path/to/repo --force" komutuyla otomatik üretirsin.

Sonrasında senin kodunu alan adamın da önce requirements.txt'i piplemesi lazım: "pip install -r requirements.txt"

Onun haricinde her farklı python versiyonu içinde üstte dendiği gibi farklı environmentlar oluşturcan. Gene Pycharm+Conda ile environmentlar arası geçişin smooth ve hızlı olur.

Phoenixlin tarafından düzenlendi
Link to comment
Sosyal ağlarda paylaş

Venv / pipenv kullanıyorum, bu req.txt metodunu da görmüştüm ama, bu mudur yani? Alan adam pip install -r req.txt yapınca benim bu sorunum çözülecek mi? Hmm, ben de bu kadar basitse dandik bi yöntemdir diye kullanmamıştım, o zaman benim ilacım pip freeze > req.txt olacak. Teşekkür ediyorum.

Peki yeri gelmişken alakasız bir soru daha sorayım. Kendime güzel güzel scriptler yazıyorum, gidiyor bir yerlerden veri çekiyor, sonra sqlite db'lerime ekliyor, vs vs. Ama frontend kısmına hiç giremedim. Bu scriptleri daha user friendly bir arayüzden yönetmem ve çalıştırabilmem, ve de çıktılarını daha güzel görselleştirebilmem için ne öğrenmem lazım en basitinden? Sadece Py bilen biri olarak düşünün, JS falan yok.

Link to comment
Sosyal ağlarda paylaş

python3 -m venv venv -pip3-venv yeter gayet. 

daha büyük işler yapıyorsan Docker'a adım at, dependency uğraşmadan direkt Docker imageı ile herkesa ynı şekilde çalıştırır.

Basit UI istiyorsan Tkinter, wxPython falan var, HTML CSS React & Vuejs ile falan çalışabilecek frontendci varsa Electron.js ile harika desktop appler yapabilirsin, Python'u da bağlarsın ona.

Link to comment
Sosyal ağlarda paylaş

On 5.09.2020 at 20:12, roket adam dedi ki:

Venv / pipenv kullanıyorum, bu req.txt metodunu da görmüştüm ama, bu mudur yani? Alan adam pip install -r req.txt yapınca benim bu sorunum çözülecek mi? Hmm, ben de bu kadar basitse dandik bi yöntemdir diye kullanmamıştım, o zaman benim ilacım pip freeze > req.txt olacak. Teşekkür ediyorum.

Peki yeri gelmişken alakasız bir soru daha sorayım. Kendime güzel güzel scriptler yazıyorum, gidiyor bir yerlerden veri çekiyor, sonra sqlite db'lerime ekliyor, vs vs. Ama frontend kısmına hiç giremedim. Bu scriptleri daha user friendly bir arayüzden yönetmem ve çalıştırabilmem, ve de çıktılarını daha güzel görselleştirebilmem için ne öğrenmem lazım en basitinden? Sadece Py bilen biri olarak düşünün, JS falan yok.

flask ile webservise dondurup, bir sonraki adimi atmis olursun. Bunun bir sonrasi da frontend tarafini guzellestirmek olur tabii ki.

Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...