"pip install --editable./" vs "python setup.py разработать"
Есть ли существенная разница между
pip install -e /path/to/mypackage
и вариант setuptools?
python /path/to/mypackage/setup.py develop
Ответы
Ответ 1
Старайтесь избегать прямого вызова setup.py
, он не будет правильно сообщать pip, что вы установили свой пакет.
С pip install -e
:
Для локальных проектов каталог SomeProject.egg-info создается относительно пути проекта. Это одно преимущество по сравнению с простым использованием setup.py develop
, который создает "egg-info" непосредственно относительно текущего рабочего каталога.
Больше: документы
Также читайте Setuptools' документы.
Ответ 2
Еще одно отличие: pip install -e
использует колесо, а
python setup.py develop
не использует его.
С install
вы можете добиться такого же поведения, используя
pip install -e /path/to/package --no-use-wheel
Дополнительная информация о колесах: колеса python
Ответ 3
Другим отличием, которое может быть в пользу pip install -e
, является то, что если ваш проект имеет зависимости в install_requires
в setup.py
, то pip install -e .
устанавливает зависимости с пипом, а python setup.py develop
может устанавливать с easy_install
и может вызвать проблемы re: 'egg-info', как указано выше. Если install-requires
использует dependency_links
с пользовательскими URL git с прикрепленными идентификаторами яйца, это может быть особенно раздражающим.