Python setup.py разработка vs установка

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

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

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

3 ответов


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

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

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


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

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

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


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

python setup.py develop --user

вместо

sudo python setup.py develop