Вопрос

У меня есть все файлы, необходимые для моего проекта, предварительно загруженные в каталог, и я хотел бы, чтобы setuptools Только устанавливайте пакеты из этого каталога.

В моем setup.cfg У меня есть:

[easy_install]
allow_hosts = None
find_links = ../../setup

Я бегу python setup.py develop и он правильно находит и устанавливает все пакеты.

Для тестирования у меня есть дополнительное требование, указанное в setup.py.

tests_require=["pinocchio==0.2"],

Это яйцо также находится локально в ../../setup справочник.

Я бегу python setup.py test и он видит зависимость и находит яйцо в ../../setup просто отлично.Тем не менее, яйцо устанавливается на мой текущий каталог вместо site-packages выложите вместе с остальными яйцами.

Я попытался указать install-dir оба в setup.cfg и в командной строке, и ни то, ни другое, казалось, не работало для tests команда.

Я мог бы просто добавить зависимость к install_requires раздел, но я бы хотел сохранить то, что требуется для установки и тестов, отдельно, если это возможно.

Как я могу сохранить зависимость в tests_require раздел, но установите его на site-packages справочник?

Это было полезно?

Решение

Просто взглянув на исходный код (setuptools/command/tests.py), это не похоже на setup.py тест не должен ничего устанавливать по замыслу (это тестирование, так зачем что-то помещать в пакеты сайта?).Он использует fetch_build_egg (setuptools/dist.py ) для получения eggs, который фактически выполняет локальную easy_install.Я подозреваю, что вы не можете тривиально заставить test делать то, что вы хотите.

Заметки / идеи:Мой опыт работы с setuptools показывает, что в нем есть ошибки и недокументированное поведение.(Одна особенно неприятная ошибка, которую я обнаружил, заключалась в том, что он не входил в каталоги с мягкими ссылками, когда это делали distutils).

Я бы рекомендовал либо А) не делать этого.:), Б) установка файла вручную путем вызова пакета easy_install .или C) заглянуть в систему setuptools и, возможно, добавить свою собственную команду.Это не так уж сложно понять, и знание этого очень поможет при будущих сбоях в setuptools.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top