2012-06-14 17 views
11

Mój scenariusz to mam dwa laptopy z fresh installation z windows. Teraz używam ich do programowania.Przenoszenie konfiguracji Pythona na różne komputery PC

Załóżmy, że zainstaluję różne moduły/pakiety Pythona w jednym z laptopów. Czy istnieje sposób, że mogę clone tej kompletnej instalacji python na moim drugim laptopie. Powodem jest to, że moje połączenie internetowe jest obecnie bardzo wolne, więc nie chcę dwa razy pobierać tego samego modułu lub pakietów i instalować je ponownie.

Wiem, że mogę pobrać moduły w pliku zip, przenieść je na inne i uruchomić python setup.py install, ale zamierzam użyć pip do instalacji modułów.

W każdym razie, zastanawiałem się, czy jest możliwe cloning konfiguracji Pythona.

Odpowiedz

16

Oto zupełnie inna propozycja, zalecana, jeśli chcesz zsynchronizować pakiety między dwoma komputerami i nie klonować wszystkiego tylko raz.

Działa tylko wtedy, gdy instalujesz pakiety z pip. Nie działa w przypadku pakietów, których nie można instalować/instalować za pomocą pip.

  1. Konfigurowanie pamięci podręcznej pip do sieciowej pamięci masowej patyku/USB, który jest dostępny z obu komputerów (patrz https://stackoverflow.com/a/4806458/851737 instrukcje)
  2. zamrażać bieżące środowisko pakiet od źródła PC do pliku Wymagania:

    $ pip freeze > req.txt

  3. skopiować plik req do docelowego komputera i zainstalować pakiety:

    $ pip install -r req.txt

Jeśli umieścisz req.txt pod VCS można zautomatyzować ten proces i synchronizować bardzo sprawnie.

+0

, nawet jeśli nie rozwiąże to problemu, dałem wam uprowadzenie do ładnego, czystego rozwiązania, które inni ludzie mogą uznać za przydatne! –

+0

@kigurai Dlaczego nie? Czytałem jego pytanie, że zaczyna od zera (na obu komputerach), więc zamierza zainstalować wszystko dwa razy i pobierze wszystko tylko raz z takim podejściem. – schlamar

+0

Przypuszczam, że czytałem to jako "utrzymywanie synchronizacji bez użycia połączenia sieciowego", a nie "klonowanie środowiska raz". –

4

Jeśli używasz virtualenv (http://www.virtualenv.org), powinieneś być w stanie przechowywać go na pamięci USB i nosić przy sobie.

+0

Miło, że o tym nie wiedziałem. – RanRag

+1

Czy kiedykolwiek testowałeś to? Dokumentacja mówi o relokowalnym virtualenv: 'Uwaga: ta opcja jest nieco eksperymentalna i prawdopodobnie istnieją zastrzeżenia, które nie zostały jeszcze zidentyfikowane. Również to nie działa obecnie w systemie Windows. " – schlamar

+0

Z całą pewnością zawiedzie, jeśli zmieni się litera dysku (co zawsze może się zdarzyć), więc nie jest to czyste rozwiązanie. – schlamar

7

Jeśli masz tę samą wersję Python na obu komputerach, możesz po prostu skopiować zawartość Lib\site-packages i Scripts do nowej. Należy jednak pamiętać, że musi to być ta sama wersja drugorzędna (np. 2.6 nie działa z wersją 2.7).

+0

Tak, mam tę samą wersję python minor – RanRag

+0

@RanRag W wielu przypadkach prawdopodobnie wersja pomniejsza nawet nie musi być taka sama. Zwłaszcza, gdy komputer źródłowy ma starszą wersję niż komputer docelowy. Gdy Python jest aktualizowany, pakiety zazwyczaj nie wymagają aktualizacji. Mogą występować rzadkie przypadki, gdy podczas kopiowania ze źródła przy użyciu nowszego Pythona pakiet nie będzie działał w miejscu docelowym z nieco starszym językiem Pythona. –

0

Aktualizowałem Python 2.7.3 -> 2.7.9 na moim komputerze z Windows 7. Normalnie byłoby to w porządku, jednak nowa instalacja przypadkowo trafiła na C: zamiast miejsca, w którym znajdowała się moja poprzednia wersja Pythona, na D: dysku. Uruchomienie go było po prostu kwestią kopiowania nowej instalacji prosto na stare. Pracowałem jak czar i wszystkie moje stare moduły, które zainstalowałem, były obecne.

Powiązane problemy