2013-09-03 17 views
11

Próbuję skonfigurować środowisko programistyczne na mojej nowej maszynie deweloperskiej w domu. Właśnie zainstalowałem Ubuntu, a teraz próbuję sklonować zdalne repo z naszego serwera sieciowego i zainstalować jego zależności, aby móc rozpocząć pracę.Pip nie instaluje pakietów do aktywowanego virtualenv, ignoruje require.txt

Do tej pory ręcznie zainstalowałem virtualenv i virtualenvwrapper z pypi i odpowiednio edytowałem mój plik bash.rc, aby źródło moich virtualenvs było uruchamiane po uruchomieniu terminala. Następnie sklonowałem moje repo do ~/projects/project-name/websitename.com. Następnie użyłem virtualenvwrapper do mkvirtualenv env-name z ~/projects/project-name/websitename.com. Odzwierciedla to dokładnie numer file-structure/setup serwera internetowego, z którego sklonowałem. Jak na razie dobrze.

Zalogowałem się do serwera dev i aktywowałem tam virtualenv i używam pip freeze -l > req.txt do renderowania listy zależności i kopiowania do mojego komputera lokalnego. Aktywuję numer virtualenv na moim komputerze lokalnym, przechodzę do ~/projects/project-name/websitename.com i wykonuję pip install -r path-to-req.txt i uruchamiam wszystkie zależności tak, jakby nic się nie stało. Jednak gdy próbuję uzyskać manage.py syncdb pojawia się błąd dotyczący nieodnalezienia podstawowych pakietów django. Co do cholery? Więc jakoś nie udało mi się zainstalować Django, i run pip install Django==1.5.1 i zakończy się pomyślnie. Muszę ponownie skonfigurować witrynę i uzyskać kolejny błąd dotyczący braku modułu o nazwie django_extensions. Okay, co do diabła z tym, po prostu zainstalowałem wszystkie te pakiety z pip ?!

Więc i pip freeze -l > test.txt i cat test.txt, co to jest lista? Django==1.5.1, jeden pakiet, który właśnie zainstalowałem ręcznie. Dlaczego PIP nie instaluje moich zależności z mojej określonej listy w moim virtualenv? Co tu robię?

-Edycja -------------

Które pip daje mi ścieżkę do PIP w moim virtualenv

mam tylko 1 virtualenv i jest aktywowana

+3

Wszystko, co robisz, wydaje się być w porządku, spróbuj debugować za pomocą 'which pip'. – elyase

+0

również wypróbuj 'find ~/.virtualenvs -type d -iname" anypackage "', aby sprawdzić, czy wymagane pakiety są zainstalowane czy nie. Polecam również użycie 'https: // gist.github.com/insin/1425703', które da miły monit o aktywacji virtualenv w twoim bash. – sagarchalise

+0

Uruchamiając swoje polecenie, jedynymi paczkami w moim virtualenv jest ten, który ręcznie poprosiłem pip, aby zainstalować Django, wszystkie inne przetwarzane przez pip w pliku wymagań zostały zignorowane. Też mam jakiś fajny monit wskazujący, który virtualenv mam aktywowany. – leotemp

Odpowiedz

6

Mój zwykły workflow jest

pip freeze > someFile.txt 

a następnie zainstalować z

pip install -r someFile.txt 

Więc jestem przekonany, że to powinno działać dobrze. Niestety nie mogę powiedzieć nic poza tym upewnij się, aby sprawdzić, czy

  1. Naprawdę jesteś w virtualenv że myślisz, że jesteś. Upewnij się uruchomić

    workon yourVirtualEnvName 
    

    go aktywować tylko w przypadku, który ma znaczenie.

  2. Upewnij się, że pip jest w twoim virtualenv.

    which pip 
    

    daje mi

    /path/to/home/.virtualenvs/myVirtEnv/bin/pip 
    

Niestety nie mogę dać bardziej konkretnej odpowiedzi. Muszę to robić pół-regularnie i nigdy nie miałem problemu z pomijaniem zależności. Powodzenia!

+2

Huh, yeah, im uruchomiony pip install -r someFile.txt i nawet oglądać, jak to mówi, jest to pobieranie i instalowanie, ale wtedy pakiety nie istnieją. Na przykład: Pobieranie/rozpakowywanie django-extensions == 1.1.1 (z -r req.txt (linia 14)) Pobieranie django-extensions-1.1.1.tar.gz (149kB): 149kB pobrane Uruchomienie pliku setup.py egg_info dla pakietu django-extensions . Ale rozszerzenia django nie wydają się być zainstalowane i nadal powodują błąd przy wywołaniu. Nie pojawia się również, gdy piszę zamrażać .. – leotemp

+5

Złożyłeś rozwiązanie tego problemu? Mam dokładnie ten sam problem. – ajay

3

Niedawno zmagał się z pewną odmianą tego problemu; to był mój zagracony plik .bash_profile.

Upewnij się, że nie ma niczego, co mogłoby zepsuć swój virtualenv wewnątrz .bash_profile/.bashrc, takich jak $VIRTUAL_ENV lub $PYTHONHOME lub $PYTHONPATH zmiennych środowiskowych.

2

Wiem, że to stary post, ale napotkałem podobny problem. W moim przypadku przyczyną było to, że uruchomiłem komendę pip install przy użyciu sudo. Dzięki temu polecenie zostało uruchomione globalnie, a pakiety zostały zainstalowane w globalnej ścieżce python.

Nadzieja, która pomaga komuś.

Powiązane problemy