Git deposundan pip yüklerken neden # egg = foo


95

Bir git deposundan yüklemek için "pip install -e ..." yaptığımda, # egg = somename veya pip şikayetlerini belirtmem gerekiyor. Örneğin:

pip install -e git://github.com/hiidef/oauth2app.git#egg=oauth2app

Bu "yumurta" ipinin önemi nedir?


1
pip installBelgelerin bu kısmı hakkında konuşuyor #egg=name, ancak net bir cevap vermiyor.
Christian Long

Yanıtlar:


35

pip kurulumu başına -h "egg" dizesi, kurulumun bir parçası olarak teslim alınan dizindir


12
Bu arşivle aynı isim olabilir mi? Vakalar önemli mi?
CMCDragonkai

14
"Kontrol edilen dizin"? Şube adını girmeli miyim? Bir şeyler uydurmak mı?
Chris

2
Özel bir Python paketi oluşturduysanız, kurulum araçlarını çalıştırdığınızda, adlı bir dizin project-name.egg-info/top_level.txtyaratılmış olmalıdır. Bu dosyanın içeriğini eggparametre değeri olarak kullanın .
dspacejs

2
egg=...Ortamın gerçekten önemli olup olmadığını anlayamıyorum. Yüklediğim paketin top_level.txt dosyasında birden çok girişi var. Onu namebetiğin kullandığı kwarg ile eşleştirmeyi denedim setup.pyama aynı zamanda keyfi bir değer. Sonuçlar her iki şekilde de aynı görünüyor. pip install https://...Gerektirmeyen sözdizimini kullanarak kurduğumu unutmayın -e.
Taylor Edmiston

7

# Egg = Package eklemeniz gerekir, böylece pip bu URL'den ne bekleyeceğini bilir. Bkz https://pip.pypa.io/en/stable/reference/pip_install/#vcs-support

daha fazla yumurta


20
Bu ne anlama geliyor "so pip o url'de ne bekleyeceğini biliyor?" Böyle bir url'ye eklemek için #egg dışında geçerli bir şey var mı?
Lorin Hochstein

Aslında gelen Will'in cevap gibi pip install -h, Source will be checked out into src/PACKAGE (lower-case) and installed in-place (using setup.py develop)ben ... başka bir yerde kullanılan emin değilim
Skylar Saveland

Klonlanmış ancak yüklenmemiş :(
holms

6

https://pip.pypa.io/en/stable/reference/pip_install/#vcs-support diyor ki:

"Yumurta = -" url sonekinin "proje adı" bileşeni, pip tarafından, boruyu indirmeden ve meta verileri analiz etmeden önce projeyi tanımlamak için bağımlılık mantığında kullanılır. Yumurta adının isteğe bağlı "sürüm" bileşeni işlevsel olarak önemli değildir. Yalnızca hangi sürümün kullanımda olduğuna dair insan tarafından okunabilir bir ipucu sağlar. Setup.py'nin projenin kök dizininde olmadığı projeler için "alt dizin" bileşeni kullanılır. "Alt dizin" bileşeninin değeri, projenin kökünden başlayarak setup.py'nin bulunduğu yere kadar bir yol olmalıdır.

Bundan, yumurta değerinin yalnızca bağımlılık kontrolleri için kullanıldığını ve bu nedenle, konvansiyonel olarak, some-pypi-package-nameherhangi bir klasör (yani some_pypi_package_name) değil , paket adının (yani ) kullanılması gerektiğini düşünüyorum.


6

Bir Yumurta, paketlenmiş bir python kodudur . Git url'de yumurta proje adıdır. VCS Desteği

Normalde python paketlerini Pypi'den kurarız, bu nedenle YALNIZCA paket adını ve sürümünü belirtirsiniz (veya belirtmezseniz en son sürümü varsayar). Pypi daha sonra istediğiniz yumurtayı arar ve pip onu kurar. pip install celeryen son yayınlanan yumurtayı pip install celery[redis]kurar ve aynı kereviz paketini içeren farklı bir yumurta kurar ve ayrıca celery setup.py'de redis için bağımlılıklar olarak listelenen paketlerden en son yumurtaları da yükler.

Git ve gitlab yollarıyla belirtirsiniz /{user|group}/{repository}.git@{tag}#egg={package-name}. #egg=celeryve arasında bir fark var #egg=celery[redis], ancak ikisi de aynı kaynak kodundan gelecek.

"etiket", gerçek bir etikete ek olarak bir dal veya kaydetme karması da olabilir. Belirtmezseniz olduğu varsayılır master.

örneğin, git+https://github.com/celery/celery.git#egg=celery==4.3.0ana dalı kontrol eder ve onu kurar. Bir sürüm numarası belirtmiş olsanız bile, kurulumda dikkate alınmaz. SÜRÜM NUMARASI YOK EDİLDİ

Git veya diğer VCS url'leri aracılığıyla yüklerken, ihtiyacınız olan sürümün etiketini veya karmasını bulmak isteyeceksiniz. Örneğin, git+https://github.com/celery/celery.git@v4.3.0#egg=celery"v4.3.0" etiketli commit'i kontrol edecek ve ardından paketi bu kaynak koddan yükleyecektir. Bakımcıların depolarını fena halde yanlış etiketlemediklerini varsayarsak, istediğiniz sürümü bu şekilde alabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.