Easy_install сбой при ошибке "Не удалось найти setup script" после двоичной загрузки?

После загрузки двоичного дистрибутива моего расширения Python C с помощью python setup.py bdist upload, easy_install [my-package-name] завершается сбой при ошибке: Не удалось найти установку script в /tmp/easy _install/package-name-etc-etc ".

Что я делаю неправильно?

Ответ 1

Это не может быть связано с вашей конкретной проблемой, но я предоставляю эту информацию, если она полезна для других.

Я ударил именно эту ошибку при запуске 'easy_install xyz'. Проблема оказалась в том, что у меня был подкаталог с именем "xyz" в текущем рабочем каталоге, и easy_install ожидал найти локальную установку script локально в этом подкаталоге вместо того, чтобы идти в Интернет, чтобы получить реальный xyz. Переименование моего локального каталога xyz устранило проблему.

Ответ 2

easy_install ожидает найти либо распределение источника, либо яйцо. Лучше всего загружать исходные дистрибутивы (sdist) в PyPI (или любой другой сервер распространения, который вы используете), и загружать только яйца, если ваш пакет python содержит расширения C, а затем только для яиц Windows (см. Мой ответ на Могу ли я создать одно яйцо для нескольких версий python?).

Команда bdist, без дополнительной настройки, создает архив .tar.gz или .zip, содержащий скомпилированные файлы python (и любые скомпилированные C-расширения) для вашей текущей платформы, без установщика (поэтому не включая setup.py файл). Он предназначен для распаковки вручную в вашем месте расположения пакетов и предварительной рассылки через яйца. Если вы хотите разархивировать его, вы заметите, что он даже включил полный, абсолютный путь в каталог вашего сайта-пакетов в tarball!

Вы можете настроить bdist для создания RPM или файла .deb или простого установщика Windows, но они снова направлены на предоставление пакетов установки для других систем распространения, не связанных с PyPI и easy_install.

Итак, чтобы обобщить, в большинстве случаев лучше всего загрузить исходный дистрибутив sdist и попросить easy_install выполнить сборку python (в яйце) при установке.

Если вы хотите загрузить предварительно скомпилированный дистрибутив (который затем привязан к определенной версии Python и платформе, для которой он был скомпилирован), вместо этого используйте команду bdist_egg.

Ответ 3

Иногда вы действительно не намереваетесь easy_install "каталог", который будет искать файл setup.py. Говоря простыми словами, вы можете делать easy_install xyz/ а то, что вы действительно хотите сделать, это easy_install xyz