остановка setup.py от установки как яйцо - PullRequest
52 голосов
/ 10 июня 2011

Как мне остановить 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

Ответы [ 2 ]

57 голосов
/ 19 ноября 2015

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

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

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

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

pip install .

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

16 голосов
/ 27 ноября 2014

Спустя годы та же проблема, не удовлетворены принятым ответом.Найдено в группах 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.Это даже не требует дополнительных параметров!Это приводит к желаемому полностью просматриваемому модулю.

...