Zainstalowałem bibliotekę za pomocą polecenia
pip install git+git://github.com/mozilla/elasticutils.git
który instaluje go bezpośrednio z repozytorium Github. To działa dobrze i chcę mieć tę zależność w sobie requirements.txt
. Szukałem w innych biletów, takich jak ten , ale to nie rozwiązuje mojego problemu. Jeśli umieszczę coś takiego
-f git+git://github.com/mozilla/elasticutils.git
elasticutils==0.7.dev
w requirements.txt
pliku pip install -r requirements.txt
wynikiem są następujące dane wyjściowe:
Downloading/unpacking elasticutils==0.7.dev (from -r requirements.txt (line 20))
Could not find a version that satisfies the requirement elasticutils==0.7.dev (from -r requirements.txt (line 20)) (from versions: )
No distributions matching the version for elasticutils==0.7.dev (from -r requirements.txt (line 20))
Dokumentacja pliku wymagań nie wspomina linki za pomocą git+git
specyfikator protokołu, więc może jest to po prostu nie działa.
Czy ktoś ma rozwiązanie mojego problemu?
git+git
wariantu (który działał). Wrequirements.txt
twojej wersji działa, więc bardzo dziękuję :)docs
Link nie działa dla mnie; Użyłem starszego .-e git+git://
zamiast-e git://
? Mam komunikat „powinna być ścieżka do lokalnego projektu lub adres URL VCS rozpoczynający się od komunikatu o błędzie svn +, git +, hg + lub bzr +” .Zwykle twój
requirements.txt
plik wyglądałby mniej więcej tak:Aby określić repozytorium Github, nie potrzebujesz
package-name==
konwencji.Poniższe przykłady są aktualizowane
package-two
przy użyciu repozytorium GitHub. Tekst pomiędzy@
i#
oznacza specyfikę pakietu.Określ hash zatwierdzenia (
41b95ec
w kontekście zaktualizowanegorequirements.txt
):Podaj nazwę oddziału (
master
):Określ tag (
0.1
):Określ release (
3.7.1
):Uwaga
#egg=package-two
: tutaj nie ma komentarza, należy wyraźnie podać nazwę pakietuTen post na blogu zawiera więcej dyskusji na ten temat.
źródło
-e
opcje, które wyglądały jak opcje wiersza poleceń ( ). Dzięki za pokazanie mieszanki obu, abym mógł to umieścić w kontekście!3.7.1
zgit+git://github.com/path/to/package-two@releases/tag/v3.7.1#egg=package-two
nie działało dla mnie. To, co zadziałało, było dla mniegit+git://github.com/path/to/[email protected]#egg=package-two
.git+git://...
notacja jakoś spowodowały błędy ssh względne na moim Linuksie. Skończyło się to na przełączeniu ich nagit+https://...
notację, a potem działały idealnie.requirements.txt
umożliwia następujące sposoby określania zależności od pakietu w repozytorium git od pip 7.0: 1W przypadku Github oznacza to, że możesz to zrobić (zauważ pominięte
-e
):Dlaczego dodatkowa odpowiedź?
W
-e
innych odpowiedziach byłem nieco zdezorientowany flagą, więc oto moje wyjaśnienie:-e
Lub--editable
środki znacznika, że jest instalowany w<venv path>/src/SomeProject
i dlatego nie w głęboko ukryty<venv path>/lib/pythonX.X/site-packages/SomeProject
ewentualnie będzie umieszczony w. 2Dokumentacja
źródło
-e
następnypip freeze
może nie dać poprawnych wyników dla tego pakietuNajpierw zainstaluj za pomocą
git+git
lubgit+https
, w dowolny sposób, jaki znasz. Przykład instalacjikronok
gałęzibrabeion
projektu:Po drugie, użyj,
pip freeze > requirements.txt
aby uzyskać właściwą rzecz w swoimrequirements.txt
. W takim przypadku otrzymaszPo trzecie, przetestuj wynik:
źródło
no such option: -e
git+https
? W tekście, który mówisz,git+git
i w kodziegit+https
Od
v1.5
wydania pipa (wydanego 1 stycznia 2014 r .: CHANGELOG , PR ) możesz również określić podkatalog repozytorium git, aby zawierał moduł. Składnia wygląda następująco:Uwaga: Jako autor modułu pip, najlepiej byłoby, gdybyś mógł opublikować swój moduł we własnym repozytorium najwyższego poziomu. Ta funkcja jest jednak przydatna w przypadku niektórych istniejących repozytoriów zawierających moduły python w podkatalogach. Możesz być zmuszony do zainstalowania ich w ten sposób, jeśli nie zostaną one również opublikowane w pypi.
źródło
Uważam, że trochę trudno jest pobrać pip3 (v9.0.1, zainstalowany przez menedżera pakietów Ubuntu 18.04), aby faktycznie zainstalować to, co mu polecam. Publikuję tę odpowiedź, aby oszczędzić czas każdemu, kto napotka ten problem.
Nie udało się wstawić tego do pliku wymagania.txt:
Przez „nieudane” mam na myśli to, że podczas pobierania kodu z Git zakończyło się instalowaniem oryginalnej wersji kodu, takiego jak znalezione w PyPi, zamiast kodu w repozytorium w tej gałęzi.
Jednak instalacja commmit zamiast nazwy oddziału działa:
źródło