Я установил библиотеку с помощью команды
pip install git+git://github.com/mozilla/elasticutils.git
который устанавливает его прямо из репозитория Github. Это прекрасно работает, и я хочу иметь эту зависимость в моем requirements.txt
. Я смотрел на другие билеты, как это, но это не решило мою проблему. Если я поставлю что-то вроде
-f git+git://github.com/mozilla/elasticutils.git
elasticutils==0.7.dev
в requirements.txt
файле pip install -r requirements.txt
результаты приводят к следующему:
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))
В документации файла требований не упоминаются ссылки с использованием git+git
спецификатора протокола, поэтому, возможно, это просто не поддерживается.
У кого-нибудь есть решение моей проблемы?
python
github
pip
requirements.txt
Альфей
источник
источник
git+git
вариантом (который работал). Вrequirements.txt
вашей версии работает, так что большое спасибо :)docs
Ссылка не работает для меня; Я использовал более старый .-e git+git://
вместо-e git://
? Я получил сообщение «Должен быть либо путь к локальному проекту, либо URL-адрес VCS, начинающийся с сообщения об ошибке svn +, git +, hg + или bzr +» .Обычно ваш
requirements.txt
файл будет выглядеть примерно так:Чтобы указать Github репо, вам не нужно
package-name==
соглашение.Приведенные ниже примеры обновляются
package-two
с использованием репозитория GitHub. Текст между@
и#
обозначает специфику пакета.Укажите хеш коммита (
41b95ec
в контексте обновленногоrequirements.txt
):Укажите название филиала (
master
):Укажите тег (
0.1
):Укажите релиз (
3.7.1
):Обратите внимание, что
#egg=package-two
здесь не комментарий, а явное указание имени пакета.В этом посте есть еще обсуждение этой темы.
источник
-e
). Спасибо за то, что продемонстрировали сочетание обоих, чтобы я мог выразить это в контексте!3.7.1
сgit+git://github.com/path/to/package-two@releases/tag/v3.7.1#egg=package-two
не работал для меня. То, что сработало для меня, былоgit+git://github.com/path/to/package-two@3.7.1#egg=package-two
.git+git://...
обозначения каким-то образом вызвали относительные ssh-ошибки на моем Linux-компьютере. В итоге я переключил их наgit+https://...
нотацию, и тогда они отлично работают.requirements.txt
позволяет следующие способы указания зависимости от пакета в git-репозитории начиная с пипа 7.0: 1Для Github это означает, что вы можете сделать (обратите внимание на пропущенное
-e
):Почему дополнительный ответ?
Я был немного смущен
-e
флагом в других ответах, так что вот мое пояснение:-e
Или--editable
флаг означает , что пакет установлен в<venv path>/src/SomeProject
и , таким образом , не в глубоко под землей<venv path>/lib/pythonX.X/site-packages/SomeProject
было бы в противном случае быть помещены в. 2Документация
источник
-e
ваш следующийpip freeze
может не дать правильных результатов для этого пакетаСначала установите с помощью
git+git
илиgit+https
любым способом, который вам известен. Пример установкиkronok
веткиbrabeion
проекта:Во-вторых, используйте,
pip freeze > requirements.txt
чтобы получить правильную вещь в вашемrequirements.txt
. В этом случае вы получитеВ-третьих, проверьте результат:
источник
no such option: -e
git+https
? В тексте вы говоритеgit+git
и в кодеgit+https
Начиная с pip
v1.5
(выпущено 1 января 2014: CHANGELOG , PR ) вы также можете указать подкаталог git-репо, в котором будет содержаться ваш модуль. Синтаксис выглядит так:Примечание. Как автор модуля pip, в идеале вы, возможно, захотите опубликовать свой модуль в своем репо верхнего уровня, если сможете. Тем не менее, эта функция полезна для некоторых уже существующих репозиториев, которые содержат модули Python в подкаталогах. Вы можете быть вынуждены установить их таким образом, если они также не публикуются в pypi.
источник
Я обнаружил, что довольно сложно получить pip3 (v9.0.1, установленный менеджером пакетов в Ubuntu 18.04) для фактической установки того, что я ему советую установить. Я публикую этот ответ, чтобы сэкономить время, кто сталкивается с этой проблемой.
Поместить это в файл require.txt не удалось:
Под «неудачей» я подразумеваю, что, хотя он загружал код из Git, он заканчивал тем, что устанавливал оригинальную версию кода, найденную в PyPi, вместо кода в репо в этой ветке.
Однако установка commmit вместо имени ветки работает:
источник