Jak określić wymagania.txt a direct github source
Zainstalowałem bibliotekę używając 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 moim requirements.txt
. Przeglądałem inne bilety, takie jak Ten , ale to nie rozwiązało mojego problemu. Jeśli umieszczę coś w rodzaju
-f git+git://github.com/mozilla/elasticutils.git
elasticutils==0.7.dev
W pliku requirements.txt
, a pip install -r requirements.txt
daje następujące wyjście:
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 wymienia linków używających protokołu git+git
konkretniej, więc może to po prostu nie jest obsługiwane.
5 answers
"edytowalna" składnia pakietów może być używana w {[2] } do importowania pakietów z różnych systemów VCS (git, hg, bzr, svn):
-e git://github.com/mozilla/elasticutils.git#egg=elasticutils
Można również wskazać konkretny commit:
-e git://github.com/mozilla/elasticutils.git@000b14389171a9f0d7d713466b32bc649b0bed8e#egg=elasticutils
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-06 22:15:13
Normalnie twój requirements.txt
plik wyglądałby mniej więcej tak:
package-one==1.9.4
package-two==3.7.1
package-three==1.0.1
...
Aby określić repo Github, nie potrzebujesz package-name==
konwencji.
Poniższe przykłady aktualizują package-two
za pomocą repo GitHub. Tekst pomiędzy @
i #
oznacza specyfikę pakietu.
Określ commit hash (41b95ec
W kontekście aktualizacji requirements.txt
):
package-one==1.9.4
git+git://github.com/path/to/package-two@41b95ec#egg=package-two
package-three==1.0.1
Podaj nazwę gałęzi (master
):
git+git://github.com/path/to/package-two@master#egg=package-two
Określ tag (0.1
):
git+git://github.com/path/to/[email protected]#egg=package-two
Określ zwolnienie (3.7.1
):
git+git://github.com/path/to/package-two@releases/tag/v3.7.1#egg=package-two
Zauważ, że #egg=package-two
nie jest tutaj komentarzem, jest to jawnie podać nazwę pakietu
Ten post na blogu ma więcej dyskusji na ten temat.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-15 18:14:41
requirements.txt
pozwala na następujące sposoby określenia zależności od pakietu w repozytorium git od pip 7.0:1
[-e] git+git://git.myproject.org/SomeProject#egg=SomeProject
[-e] git+https://git.myproject.org/SomeProject#egg=SomeProject
[-e] git+ssh://git.myproject.org/SomeProject#egg=SomeProject
-e [email protected]:SomeProject#egg=SomeProject
Dla Githuba oznacza to, że możesz to zrobić (zwróć uwagę na pominięte -e
):
git+git://github.com/mozilla/elasticutils.git#egg=elasticutils
Skąd ta dodatkowa odpowiedź?
W innych odpowiedziach trochę pogmatwała mnie flaga -e
, więc oto moje wyjaśnienie:
Znacznik -e
lub --editable
oznacza, że pakiet jest zainstalowany w <venv path>/src/SomeProject
, a więc nie w głęboko Zakopanym <venv path>/lib/pythonX.X/site-packages/SomeProject
, w przeciwnym razie być umieszczone w.2
Dokumentacja
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-29 20:01:56
Najpierw zainstaluj za pomocą git+git
. Przykład instalacji gałęzi kronok
projektubrabeion
:
pip install -e git+https://github.com/kronok/brabeion.git@12efe6aa06b85ae5ff725d3033e38f624e0a616f#egg=brabeion
Po drugie, użyj pip freeze > requirements.txt
, aby uzyskać właściwą rzecz w swoim requirements.txt
. W tym przypadku otrzymasz
-e git+https://github.com/kronok/brabeion.git@12efe6aa06b85ae5ff725d3033e38f624e0a616f#egg=brabeion-master
Po Trzecie, sprawdź wynik:
pip uninstall brabeion
pip install -r requirements.txt
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-09 00:07:54
Od pip v1.5
, (wydany 1 stycznia 2014: CHANGELOG, PR ) Możesz również określić podkatalog repo git, który będzie zawierał Twój moduł. Składnia wygląda tak:
pip install -e git+https://git.repo/some_repo.git#egg=my_subdir_pkg&subdirectory=my_subdir_pkg # install a python package from a repo subdirectory
Uwaga: jako autor modułu pip, najlepiej byłoby opublikować swój moduł w jego własnym repo najwyższego poziomu, jeśli możesz. Jednak ta funkcja jest pomocna dla niektórych istniejących repozytoriów, które zawierają moduły Pythona w podkatalogach. Możesz być zmuszony do zainstalowania ich w ten sposób, jeśli nie zostaną opublikowane pypi też.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-03 07:09:14