Настройка Python setup.py vs install

Две опции в setup.py develop и install меня путают. Согласно этому сайту, с помощью develop создается специальная ссылка на каталог сайтов-пакетов.

Люди предложили использовать python setup.py install для новой установки и python setup.py develop после внесения каких-либо изменений в файл установки.

Может кто-нибудь пролить свет на использование этих команд?

Ответ 1

python setup.py install используется для установки (обычно сторонних) пакетов, которые вы не собираетесь разрабатывать/редактировать/отлаживать самостоятельно.

Для вашего собственного материала вы хотите установить свой пакет, а затем сможете часто редактировать свой код, а не придется переустанавливать ваш пакет - это именно то, что делает python setup.py develop: устанавливает пакет (как правило, только исходную папку) таким образом, чтобы вы могли удобно редактировать свой код после его установки в (виртуальную) среду и немедленно вносить изменения.

Обратите внимание, что для установки пакетов настоятельно рекомендуется использовать pip install . (install) и pip install -e . (установка разработчика), так как вызывать setup.py напрямую будут делать неправильные вещи для многих зависимостей, таких как вытаскивание предварительных версий и несовместимых версий пакетов и сделать пакет сложным для удаления с помощью pip.

Ответ 2

Из документации. develop не будет устанавливать пакет, но он создаст .egg-link в каталоге развертывания обратно в каталог исходного кода проекта.

Так что, как установка, но вместо копирования на site-packages он добавляет символическую ссылку (.egg-link действует как мультиплатформенная символическая ссылка).

Таким образом, вы можете редактировать исходный код и просматривать изменения напрямую, не переустанавливая каждый раз, когда вы делаете небольшое изменение. Это полезно, когда вы являетесь разработчиком этого проекта, следовательно, имя develop. Если вы просто устанавливаете кому-то другой пакет, вы должны использовать install

Ответ 3

Другая вещь, которую люди могут найти полезной при использовании метода develop, - это опция --user для установки без sudo. Пример:

python setup.py develop --user

вместо

sudo python setup.py develop