2011-12-28 5 views
7

Czy jest możliwe aby utworzyć plik setup.py, że:setup.py, który ściąga niepoprawne repliki Pythona i umieszcza je we właściwym katalogu?

  • ściąga repozytorium github
  • umieszcza pliki z tego repozytorium w określonym folderze

mam Konfigurowanie pakiet/aplikacja django, która używa zewnętrznych frameworków JavaScript dostępnych na github. Chciałbym móc pobrać setup.py najnowszą wersję z github, a następnie umieścić te pliki w odpowiednim folderze statycznym/js. Tak więc różni się to od normalnych zależności, które są pakietami Python z ich własnymi plikami setup.py.

+0

co zrobić, aby uczynić je modułem częściowym, aby zostały już włączone jako podkatalogi? – jterrace

+0

Jak by to ustawić? –

+0

http://chrisjean.com/2009/04/20/git-submodules-adding-using-removing-and-updating/ – jterrace

Odpowiedz

2

Jeśli używasz setuptool (setup.py) można użyć wymóg Zależność: https://stackoverflow.com/a/3481388/496445

Inaczej jak komentarze sugerują, skonfigurować projektu Django jako rzeczywisty repo git a następnie dodaj repo GitHub jako modułem

cd myProject 
git init 
git submodule add git://path/to/repo.git local/location/repo 

Wtedy po prostu móc cd w tym modułem i git pull

Jeśli nie chcesz, aby ustawić swój projekt jako AG to repo, to brute force sposobem byłoby ręcznie sklonować repo GitHub, w którym chcesz go, a następnie dodać kilka ręcznych poleceń w setup.py

import os 
os.system("cd path/to/repo && git pull") 
+0

Czy to działa, jeśli dany element nie jest modułem Pythona? Er, wszystko przedtem inaczej. Nadal planuję używać setuptool lub distutils (w zależności od tego, który jest łatwiejszy do skonfigurowania), ale obiekt, który ciągnę, nie jest modułem, więc jestem pewien, że zależność nie zadziała. –

+0

Przypuszczam, że nie, jeśli nie jest to pakiet python. Opcja druga jest jednak bardzo prosta. – jdi

+0

Ok, ustawiłem submoduły, ale są one puste i kiedy pip jest wywoływany z jakiegoś powodu działanie klonowania nie powoduje ich załadowania. Czy jest jakiś sposób, aby to zrobić, aby po uruchomieniu pip aktualizował również submoduły? –

2

Alternatywą byłoby aby zapewnić wymagania. plik txt do użytku z pip. Możesz określić repozytorium git i mercurial, a także pakiety PyPI, aby użytkownik musiał wykonać tylko pip install -r requirements.txt, aby uzyskać cały projekt.

+0

Czy to działa, jeśli repozytoria w pytaniach nie mają plików setup.py? –

+0

Przepraszamy za głosowanie, ale ta odpowiedź działa tylko wtedy, gdy miałem do czynienia z repozytoriami Pythona, którymi nie jestem. Tylko myślę, że niektórzy ludzie mogą to wypróbować i nie działają. Jeśli istnieje magiczny sposób na pobranie przez PIP modułów innych niż Python za pośrednictwem pliku requirements.txt, daj mi znać, ponieważ nie ma w tym nic w dokumentacji. –