2012-05-04 34 views
10

Po wykonaniu źródłem środowisku wirtualnym staramDlaczego program pip instaluje pakiet poza moim środowiskiem wirtualnym?

pip install -U --no-deps django-social-auth 

i powraca:

OSError: [Errno 13] Permission denied: '/usr/local/lib/python2.6/dist-packages/django_social_auth-0.6.9-py2.6.egg-info/dependency_links.txt' 

Dlaczego próbuje pisać poza virtualenv?

+3

czy możesz upewnić się, że python, który wywołujesz, jest rzeczywiście tym z wirtualnego środowiska env? –

+0

jak to zrobić? – Bastian

+1

'który pip' na terminalu – JosefAssad

Odpowiedz

7

Wpadłem na ten problem, gdy zmieniłem nazwę katalogu zawierającego moje środowisko wirtualne. Pułap ścieżki twardej nie był już poprawny.

Zaktualizuj plik shebang w skrypcie pip, aby wskazywał na plik wykonywalny Pythona w środowisku wirtualnym.

+0

świetnie! Otworzyłem wirtualny env/bin/pip, aby zdać sobie sprawę, że shebang nie wskazuje na plik wykonywalny wirtualnego pytona env. Zaktualizowałem go, ale kiedy aktywuję ten wirtualny env i robię "który python" nadal otrzymuję python systemu, a nie wirtualny env. Jak dotąd jest to bardzo dobra odpowiedź. Oznaczenie jako zaakceptowane. – Bastian

+0

Tak, myślę, że musisz uruchomić/path/to/virtualenv/bin/python – starsinmypockets

3

prawdopodobnie powinieneś upewnić się, że od ciebie wirtualne środowisko, więc coś. jak

./env/bin/pip install -U --no-deps django-social-auth 
4

W moim zdaniem, albo jesteś wykonywania pip, który nie jest częścią virtualenv, czy jesteś, ale interpreter Pythona, który zostanie wykonany nie jest częścią virtualenv. Sprawdź, czy wykonywana pipa jest właściwa z which pip i wymuś pytona z virtualenv przez użycie your_envdir/bin/python pip <arguments>, zamiast tylko wywoływania zwykłego pip.

To dziwne, ponieważ jeśli poprawnie aktywowałeś środowisko z bin/activ, powinieneś uzyskać poprawną pip. Czy na pewno aktywowałeś się przy pomocy . bin/activate, a nie sh bin/activate? To są dwie różne rzeczy. Czy podpowiedź się zmieniła?

+0

Masz rację, który pip zwraca/usr/bin/pip. Użyłem "aplikacji źródłowych/virtual_environments/my_project/bin/activate", a monit zmieniono na "(my_project) user @ host: ~ $". A kiedy próbuję użyć pipsa, który znajduje się w wirtualnym środowisku, otrzymuję: "python: bad interpreter: No such file or directory". – Bastian

+0

Masz jakieś pojęcie o tym, co może to spowodować? – Bastian

+0

@Bastian: nie masz pytona w wirtualnym środowisku? –

Powiązane problemy