Настройка 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