Когда я выполняю «pip install -e ...» для установки из репозитория git, я должен указать # egg = somename или pip жалоба. Например:
pip install -e git://github.com/hiidef/oauth2app.git#egg=oauth2app
Каково значение этой «яичной» струны?
Когда я выполняю «pip install -e ...» для установки из репозитория git, я должен указать # egg = somename или pip жалоба. Например:
pip install -e git://github.com/hiidef/oauth2app.git#egg=oauth2app
Каково значение этой «яичной» струны?
Ответы:
per pip install -h строка "egg" - это каталог, который извлекается как часть установки
project-name.egg-info/top_level.txtдолжен был быть создан каталог с именем . Используйте содержимое этого файла в качестве значения eggпараметра.
egg=...действительно ли имеет значение настройка. Пакет, который я устанавливаю, имеет несколько записей в файле top_level.txt. Я экспериментировал с сопоставлением его с namekwarg, в котором используется скрипт, setup.pyно также с произвольным значением. Результаты кажутся одинаковыми в любом случае. Обратите внимание, что я устанавливаю, используя pip install https://...синтаксис, который не требует -e.
Вы должны включить # egg = Package, чтобы pip знал, чего ожидать от этого URL. См. Https://pip.pypa.io/en/stable/reference/pip_install/#vcs-support
pip install -h, Source will be checked out into src/PACKAGE (lower-case) and installed in-place (using setup.py develop)я не уверен, что он используется где-то еще ...
https://pip.pypa.io/en/stable/reference/pip_install/#vcs-support говорит:
Компонент «имя проекта» суффикса URL-адреса «egg = -» используется pip в своей логике зависимостей для идентификации проекта до загрузки pip и анализа метаданных. Необязательный компонент «версия» в имени яйца не имеет функционального значения. Он просто дает понятную подсказку о том, какая версия используется. Для проектов, где setup.py не находится в корне проекта, используется компонент «подкаталог». Значением компонента «subdirectory» должен быть путь, начинающийся от корня проекта до места, где находится setup.py.
Из этого я делаю вывод, что значение яйца используется только для проверки зависимостей, и поэтому я думаю, что по соглашению some-pypi-package-nameследует использовать имя пакета (т.е. ), а не какую-либо содержащуюся папку (т.е. some_pypi_package_name)
Яйцо - это просто какой-то связанный код Python . В URL-адресе git яйцо - это имя проекта. Поддержка VCS
Обычно мы устанавливаем пакеты python из Pypi, поэтому вы указываете ТОЛЬКО имя и версию пакета (или предполагается последняя версия, если вы не указываете). Затем Pypi ищет, какое яйцо вы хотите, и устанавливает его. pip install celeryустановит последнее опубликованное яйцо и pip install celery[redis]установит другое яйцо, которое содержит тот же пакет сельдерея, а также установит последние яйца из тех пакетов, которые были указаны как зависимости для redis в файле setup.py celery.
Укажите пути git и gitlab /{user|group}/{repository}.git@{tag}#egg={package-name}. между #egg=celeryи есть разница #egg=celery[redis], но они оба происходят из одного и того же исходного кода.
«tag» также может быть хешем ветки или фиксации в дополнение к фактическому тегу. Предполагается, что будет, masterесли вы не укажете.
например, можно git+https://github.com/celery/celery.git#egg=celery==4.3.0было бы проверить главную ветку и установить ее. Даже если вы указали номер версии, он не учитывается при установке. НОМЕР ВЕРСИИ ИГНОРИРУЕТСЯ
При установке через git или другие URL-адреса VCS вам нужно будет найти тег или хэш нужной вам версии. Например, git+https://github.com/celery/celery.git@v4.3.0#egg=celeryпри проверке фиксации с тегом «v4.3.0» и последующей установке пакета из этого исходного кода. Предполагая, что сопровождающие не допустили грубого нарушения тегов в своих репозиториях, вы можете получить желаемую версию таким образом.
pip installдокументации говорится#egg=name, но нет четкого ответа.