2012-05-22 7 views
5

Wewnątrz setup.py mam coś takiego:Jak przekonać narzędzia setuptools do używania katalogu tymczasowego dla pakietów wymaganych z setup_require lub tests_require?

setup_requires=['nose>=1.0'], 
tests_require=[], 

Problemem jest to, że gdy uruchamiam ./setup.py test będzie pobrać i rozpakować te moduły w katalogu z setup.py.

Jak mogę przekonać go do korzystania z katalogu tymczasowego do tego, nie chcę z nich polutować systemu kontroli źródła i nie chcę zaczynać dodawać wielu wzorów exlude.

Odpowiedz

1

Jeśli problem jest drzewem źródłowym projektu, prawdopodobnie powinieneś utworzyć skrypt usuwający wszystkie katalogi "dist" i "build" utworzone przez distutils na końcu testu konfiguracji. Pobrane pakiety to zazwyczaj foldery * .egg w drzewie źródłowym.

Nie zanieczyszczasz swojej dystrybucji.

Z dokumentacji setuptools:

setup_requires nie zostaną automatycznie zainstalowane w systemie, w którym skrypt setup uruchomionego. Są one po prostu pobierane do katalogu instalacyjnego, jeśli nie są już dostępne lokalnie. Jeśli chcesz je zostać zainstalowany, a także jest dostępny, gdy skrypt instalacyjny jest run, należy dodać je do install_requires i setup_requires.)

i

tests_require Jeśli urządzenie Testy projektu wymagają jednego lub więcej dodatkowych pakietów, oprócz tych koniecznych do zainstalowania, możesz użyć tej opcji , aby je określić. Powinien to być ciąg lub lista ciągów określających, jakie inne dystrybucje muszą być obecne w testach pakietu, aby uruchomić je na . Po uruchomieniu polecenia testowego, SETtools spróbuje uzyskać te (nawet posuwając się do pobrania za pomocą EasyInstall). Uwaga: , że te wymagane projekty nie zostaną zainstalowane w systemie, w którym przeprowadzane są testy , ale są pobierane tylko do katalogu konfiguracji projektu, jeśli nie zostały jeszcze zainstalowane lokalnie.

http://packages.python.org/distribute/setuptools.html

Jeśli masz zainstalowany jakiś pakiet i trzeba go usunąć, prostu znaleźć swój pakiet w podfolderze „site-packages” z dystrybucji Pythona i usuń go. Na koniec usuń odniesienie do pakietu w pliku easy-install.pth , który zazwyczaj znajduje się w tym samym katalogu "site-packages".

+0

Dzięki. Wciąż nie szukałem zanieczyszczania mojej kopii roboczej podczas uruchamiania 'setup.py', który znajduje się w katalogu głównym repozytorium.Tak więc szukam sposobu przekonania narzędzi setuptools do utworzenia tych plików gdzie indziej. – sorin

+0

Poprawione. Myślę, że powinieneś pójść ze scenariuszem! –

0

Począwszy od setuptools 7.0, przejściowe zależności załadowane dla setup_requires, tests_require i podobne są instalowane w ./.eggs. Gorąco zachęcam do dodania tego do Twojej globalnej listy ignorowanych.

Powiązane problemy