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


Öne çıkan mesajlar

Mesaj tarihi:

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.

Mesaj tarihi:

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.

Mesaj tarihi: (düzenlendi)

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
Mesaj tarihi:

req.txt için grlmiştim gidiyorum, 

ben de her zaman bir versiyon geriden takip ediyorum python.

python 3.7 kulanıyorum şu sıralar 3.9 a geçince 3.8 e grçicem ben de. çünkü libraryler anca güncelleniyor yeni pythona

Mesaj tarihi:

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.

Mesaj tarihi:

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.

Mesaj tarihi:
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.

Mesaj tarihi:
On 05.09.2020 at 21:25, roket adam dedi ki:

CSS; JS falan hiç bilmiyorum öğrenmek de istemiyorum mümkün olduğu kadar

abi o zaman nasıl web app yapacaksın? backend yaparsın sadece ? yani akrep nalan websitesi kafasında bir şey için bile html css lazım en azından. onlara da bak bence

Mesaj tarihi:

kendi ogrendiklerini test edebilmek adina 2 satir div'leri falan ogrensen olur

css'e vakit harcama bence, isi en iyi bilen adam en efektif sekilde yapacak, yeterince backend isi var is bitmez no worries ?

Mesaj tarihi:

Aynen mevcut template'leri kullanacak kadar olsun yeter, çok karmaşık şeyler yapmaya çalışmıyorum zaten ? Ya işten değil de frontend'den zevk almıyorum maalesef, çok tasarım bilgim de yok, hiç sarmıyor. Niyeyse backend tarafı daha zevkli geliyor bana. 

×
×
  • Yeni Oluştur...