Может это просто то же имя, что и репозиторий? Имеют ли значение случаи?
CMCDragonkai
14
"Каталог, который проверяется"? Так мне ввести название ветки? Придумай что-нибудь?
Крис
2
Если вы создали собственный пакет Python, при запуске setuptools project-name.egg-info/top_level.txtдолжен был быть создан каталог с именем . Используйте содержимое этого файла в качестве значения eggпараметра.
dspacejs
2
Я не могу понять, egg=...действительно ли имеет значение настройка. Пакет, который я устанавливаю, имеет несколько записей в файле top_level.txt. Я экспериментировал с сопоставлением его с namekwarg, в котором используется скрипт, setup.pyно также с произвольным значением. Результаты кажутся одинаковыми в любом случае. Обратите внимание, что я устанавливаю, используя pip install https://...синтаксис, который не требует -e.
Что это значит: «Пип знает, чего ожидать от этого URL-адреса»? Есть ли что-то еще, кроме #egg, которое можно добавить к подобному URL-адресу?
Лорин Хохштейн
Мне действительно нравится ответ Уилла из pip install -h, Source will be checked out into src/PACKAGE (lower-case) and installed in-place (using setup.py develop)я не уверен, что он используется где-то еще ...
Компонент «имя проекта» суффикса URL-адреса «egg = -» используется pip в своей логике зависимостей для идентификации проекта до загрузки pip и анализа метаданных. Необязательный компонент «версия» в имени яйца не имеет функционального значения. Он просто дает понятную подсказку о том, какая версия используется. Для проектов, где setup.py не находится в корне проекта, используется компонент «подкаталог». Значением компонента «subdirectory» должен быть путь, начинающийся от корня проекта до места, где находится setup.py.
Из этого я делаю вывод, что значение яйца используется только для проверки зависимостей, и поэтому я думаю, что по соглашению some-pypi-package-nameследует использовать имя пакета (т.е. ), а не какую-либо содержащуюся папку (т.е. some_pypi_package_name)
Обычно мы устанавливаем пакеты 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
, но нет четкого ответа.Ответы:
per pip install -h строка "egg" - это каталог, который извлекается как часть установки
источник
project-name.egg-info/top_level.txt
должен был быть создан каталог с именем . Используйте содержимое этого файла в качестве значенияegg
параметра.egg=...
действительно ли имеет значение настройка. Пакет, который я устанавливаю, имеет несколько записей в файле top_level.txt. Я экспериментировал с сопоставлением его сname
kwarg, в котором используется скрипт,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 говорит:
Из этого я делаю вывод, что значение яйца используется только для проверки зависимостей, и поэтому я думаю, что по соглашению
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» и последующей установке пакета из этого исходного кода. Предполагая, что сопровождающие не допустили грубого нарушения тегов в своих репозиториях, вы можете получить желаемую версию таким образом.источник