Ответ 1
setup.py develop
создает яйцо питона, на месте; он не [изменить] среду python, поэтому пакет может быть импортирован из текущего местоположения. Вам все равно придется либо добавить его в путь поиска python, либо использовать каталог, в который он помещен, в качестве текущего каталога.
Это команда develop
для создания яйца на месте, которое может включать компиляцию C-расширений, выполнение процесса преобразования python 2to3 для создания совместимого с Python кода, а для предоставления метаданных другой код python может полагаться на. Когда вы устанавливаете пакет в виде яйца в каталог site-packages
, туда же включаются те же метаданные. Данные, конечно, не временные (он извлекается из вашего файла setup.py
для легкого анализа другими инструментами).
Цель состоит в том, чтобы затем вы могли полагаться на эти метаданные при использовании своего пакета в более широкой системе, которая опирается на присутствующие метаданные, при этом все еще разрабатывая пакет. Например, в развертывании разработки buildout мы часто используем mr.developer
, чтобы автоматизировать процесс извлечения исходного кода для данного пакета, когда мы должны работать над ним, который строит его как разрабатываемое яйцо и связывает его с развертыванием, пока мы работаем над кодом.
Обратите внимание, что каталог .egg-info
служит для определенной цели: сигнализировать другим инструментам в eco-системе setuptools, что ваш пакет установлен и доступен. Если ваш пакет является зависимым от другого яйца в вашей настройке, то эта зависимость выполняется. pip
и easy_install
, и сборка не будет пытаться извлечь яйцо из другого места.
Помимо создания каталога .egg-info
, единственной вещью, которую выполняет команда, является создание расширений на месте. Итак, команда, которую вы ищете, это:
setup.py build_ext --inplace
Это будет делать то же самое, что и setup.py develop
, но не укажет каталог .egg-info
. Он также не будет генерировать файл .pth
.
Невозможно создать только файл .pth
и оставить без генерации каталога .egg-info
.
С технической точки зрения, setup.py develop
также проверяет, установлен ли файл setuptools site.py
для поддержки пакетов с расширением имен, но это не имеет значения.