2016-01-25 13 views
5

Mam numer virtualenv pod adresem /home/user/virtualenvs/Environment. Teraz potrzebuję tego środowiska na innym komputerze. Zainstalowałem więc virtualenv-clone i użyłem go do sklonowania /Environment. Następnie skopiowałem go na inny komputer przez USB. mogę go aktywować z source activate, ale gdy próbuję uruchomić interpreter Pythona z sudo ./Environment/bin/python uzyskaćSkopiuj kompletny virtualenv do innego komputera

./bin/python: 1: ./bin/python: Syntax Error: "(" unexpected 

Wykonywanie go bez sudo daje mi błąd informujący mnie, że wystąpił błąd w formacie plików binarnych. Ale jak to możliwe? Po prostu to skopiowałem. Czy istnieje lepszy sposób to zrobić? Nie mogę po prostu użyć pip freeze, ponieważ istnieje kilka pakietów w /Environment/lib/python2.7/site-packages/, które sam napisałem i również muszę je skopiować. Jak rozumiem, pip freeze tworzy listę pakietów, które pobierają, a następnie pobierają i instalują.

+0

W jaki sposób te pakiety zostały umieszczone w pakietach witryny? Musiałeś je zainstalować i na pewno muszą istnieć w kontroli wersji. –

+0

Stworzyłem folder, dodano '__init __. Py' i umieściłem tam moje moduły, więc mogę uzyskać do nich dostęp z mojego projektu, który korzysta z virtualenv. – vicco

+0

Cóż, nie powinieneś tego robić. W jaki sposób zamierzasz wdrożyć te biblioteki? Musisz umieścić je gdzieś w Internecie, z którego można je zainstalować, i musisz je spakować, aby mogły być zainstalowane przez pip. Lub, jeśli są one po prostu częścią twojego projektu, powinny być wewnątrz twojego projektu. –

Odpowiedz

5

Wykonaj następujące kroki na komputerze źródłowym

  1. workon [environment_name]
  2. pip freeze> requirements.txt
  3. kopia requirements.txt do innego komputera

Na innym komputerze

  1. utworzyć wirtualne środowisko przy użyciu mkvirtualenv [ environment_name]
  2. workon [environment_name]
  3. pip zainstalować -r requirements.txt

Państwo powinno być zrobione!

similar questionHow to Copy/Clone a Virtual Environment from Server to Local Machine

+0

Czy to również kopiuje pakiety w 'site-packages', które napisałem sam? – vicco

+0

Spowoduje to utworzenie repliki środowiska roboczego na komputerze źródłowym. Będzie pobierał wszystko, czego potrzeba samemu. –

+0

Nie bardzo rozumiem, w jaki sposób można odtworzyć paczki, które sam napisałem z pliku tekstowego? Plik requirements.txt zawiera tylko pakiety, które można pobrać. – vicco

1

myślę, co dzieje jest to, że po prostu skopiować linki symboliczne w pliku źródłowego do docelowego urządzenia w postaci plików binarnych (już linki). Powinieneś go skopiować, używając rsync -l do skopiowania, aby zachować te linki.

Powiązane problemy