2009-12-03 2 views
7

У меня есть все яйца, которые мой проект требует предварительной загрузки в каталог, и я хотел бы setuptools только установить пакеты из этого каталога.'setup.py test' Место установки яйца?

В моей 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?

ответ

3

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

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

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

+0

Спасибо за ваш ответ. Я не собираюсь беспокоиться о том, как бороться с настройками, и делать либо A), либо B), как вы рекомендовали. – amrox

Смежные вопросы