Jump to content
roket adam

Python Dependency Hell

Öne çıkan mesajlar

§ 05 Eyl 2020, 11:29

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.

Bu mesajı paylaş


Bu mesajın linki
Sosyal ağlarda paylaş
§ 05 Eyl 2020, 13:51

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.

Bu mesajı paylaş


Bu mesajın linki
Sosyal ağlarda paylaş
§ 05 Eyl 2020, 14:38

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

Bu mesajı paylaş


Bu mesajın linki
Sosyal ağlarda paylaş
§ 05 Eyl 2020, 17:33

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

Bu mesajı paylaş


Bu mesajın linki
Sosyal ağlarda paylaş
§ 05 Eyl 2020, 18:12

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.

Bu mesajı paylaş


Bu mesajın linki
Sosyal ağlarda paylaş
§ 05 Eyl 2020, 18:20

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.

Bu mesajı paylaş


Bu mesajın linki
Sosyal ağlarda paylaş
§ 05 Eyl 2020, 18:25

Yok ben web uygulaması yapmak istiyorum, desktop app değil. Normal browserdan girecek adam işte. Ve CSS; JS falan hiç bilmiyorum öğrenmek de istemiyorum mümkün olduğu kadar 🙂 

Bu mesajı paylaş


Bu mesajın linki
Sosyal ağlarda paylaş
§ 05 Eyl 2020, 19:14

biz şirkette qa tarafında requirements ile başladık, dockera geçirdik kafa rahat oluyor.

bu arada o kadar kolay evet kasdkad

Bu mesajı paylaş


Bu mesajın linki
Sosyal ağlarda paylaş
§ 08 Eyl 2020, 09:21
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.

Bu mesajı paylaş


Bu mesajın linki
Sosyal ağlarda paylaş
§ 08 Eyl 2020, 11:27

Flask yerine Fastapi daha dadlı olur.

Bu mesajı paylaş


Bu mesajın linki
Sosyal ağlarda paylaş
§ 12 Eyl 2020, 16:29

Teşekkürler cevaplar için. Ben en iyisi Flask öğrenmeye başlayayım.

Bu mesajı paylaş


Bu mesajın linki
Sosyal ağlarda paylaş
§ 12 Eyl 2020, 17:43
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

Bu mesajı paylaş


Bu mesajın linki
Sosyal ağlarda paylaş
§ 12 Eyl 2020, 17:46

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 🙂

Bu mesajı paylaş


Bu mesajın linki
Sosyal ağlarda paylaş
§ 12 Eyl 2020, 17:51

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. 

Bu mesajı paylaş


Bu mesajın linki
Sosyal ağlarda paylaş

Yorum yazmak için üye olun veya giriş yapın

Yorum yazmak için üye olmanız lazım

Üye ol

Kayıt olun ve aramıza katılın!

Yeni bir hesap oluştur

Giriş yap

Zaten üyemiz misin? O halde giriş yap

Hemen giriş yap

Yasal Duyuru

5651 sayılı kanun kapsamında, Paticik.com, işbu sayfadaki mesajların ve içeriğin Yer Sağlayıcısıdır. Yayınlanan içeriklerden doğabilecek her türlü sorumluluk içeriği üreten kullanıcıya aittir. Şikayet ve talepleriniz için buraya tıklayıp bize ulaşabilirsiniz. Alternatif olarak [email protected] e-posta adresinden bize ulaşabilirsiniz.

×
×
  • Yeni Oluştur...