Подтвердить что ты не робот

Остановка setup.py от установки как яйцо

Как остановить setup.py от установки пакета в виде яйца? Или даже лучше, как мне easy_install установить пакет как egg?

sudo python setup.py install

Причина, заключающаяся в том, что PyDev довольно придирчив к пакетам в формате egg... В настоящий момент меня интересует пакет boto.

Обновление: Я нашел способ грубой силы:

sudo easy_install -m boto
cd path/to/boto-xyz.egg
sudo mv boto ..
sudo rm -rf boto-xyz.egg
4b9b3361

Ответ 1

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

python setup.py install --single-version-externally-managed --root=/

Сжатые файлы *.egg являются изобретением setuptools (я не большой поклонник их, хотя я понимаю, почему они были созданы), и потому что setup.py script использует (и может потребовать) setuptools, пакет заканчивается установкой в ​​качестве сжатого файла *.egg.

Параметры командной строки выше аналогичны тем, которые используются при использовании pip (диспетчер пакетов Python), который намекает другим способом остановить установку пакета как сжатого *.egg file: Просто используйте pip! Если у вас есть каталог, содержащий setup.py script, вы можете запустить следующую команду в этом каталоге, чтобы установить пакет с помощью pip:

pip install .

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

Ответ 2

Спустя годы эта же проблема, не удовлетворенная принятым ответом. Нашли это в группах Google:

pushd /path/to/my/package/ 
python setup.py sdist 
popd 
pip install /path/to/my/package/dist/package-1.0.tar.gz

Объяснение: python setup.py sdist создает распределение источника, которое, естественно, не является *.egg! Полученный в результате архив (.tar.gz в unix,.zip в windows) может быть установлен как любой удаленный модуль с pip. Он даже не требует дополнительных параметров! Это приводит к желаемому полностью просматриваемому модулю.