Есть ли существенная разница между
pip install -e /path/to/mypackage
а вариант setuptools?
python /path/to/mypackage/setup.py develop
python
pip
setuptools
PeterE
источник
источник
Ответы:
Старайтесь не звонить
setup.py
напрямую, он не будет правильно сообщать pip, что вы установили свой пакет.С
pip install -e
:Больше: документы
Также читайте Setuptools' документы .
источник
Еще одно отличие:
pip install -e
использует колесо, аpython setup.py develop
не использует его.
С помощью
install
вы можете достичь того же поведения, используяpip install -e /path/to/package --no-use-wheel
Подробнее о колесах: колеса питона
источник
--no-use-wheel
в пользу--no-binary :all:
Еще одно отличие, которое может быть предпочтительным,
pip install -e
заключается в том, что если ваш проект имеет зависимости вinstall_requires
insetup.py
, тоpip install -e .
устанавливает зависимости с помощью pip, аpython setup.py develop
может устанавливать сeasy_install
и может вызвать проблемы re: 'egg-info', как упомянуто выше. Приinstall-requires
использованииdependency_links
с пользовательскими URL-адресами git и с прикрепленными идентификаторами яиц это может быть особенно раздражающим.источник
pip install -e .
, он, по сути, создает символическую ссылку в соответствующем каталоге пакетов сайта Python, указывающую на вашу рабочую копию. Поскольку в эту рабочую копию вносятся изменения в код, она мгновенно отражается в «установленной» версии, поэтому вам не нужно повторно запускать команды установки по ходу работы. Это в первую очередь полезно для разработки в хранилище , которое представляет собой устанавливаемый пакет, но также может быть полезно, например , для написания некоторого набора модулей только с абсолютным импортом и т.д.Еще одно отличие: когда вы работаете
python setup.py develop
с версией, которая считается предварительной версией (возможно, потому что вы запускаете ее из git-клона, когда не проверили релиз), вы включите установку предварительных выпусков ваших зависимостей. , С другой стороны, сpip install --editable
вами придется пройти--pre
явно, если вы хотите эти предварительные релизы.(См. Журнал CI с случайно использованными предварительными выпусками и сравните это с фиксированной сборкой здесь .)
источник