2012-07-09 14 views
10

Próbuję skonfigurować Python dla moich Emacs na Ubuntu, i pojawia się następujący błąd:/usr/bin/env: python2: Nie ma takiego pliku lub katalogu

/usr/bin/env: python2: No such file or directory 

Czy ktoś może mi pomóc z tym? Co mogę zrobić, aby go rozwiązać?

+0

Kiedy ten błąd występuje? – dwerner

+0

Nie jestem pewien, dlaczego został zamknięty jako "wyłączony temat", ponieważ pytanie dotyczy konfiguracji środowiska programistycznego Python w systemie Ubuntu i zwykle pierwszej linii kodu Pythona w systemie UNIX. Oto wyjaśnienie, co robi ta linia i jak ją skonfigurować dla twojego systemu: http: //stackoverflow.com/questions/2429511/why-do-people-write-usr-bin-env-python-on-the-first -line-of-a-python-script – Will

Odpowiedz

6

To pewnie prawda. Łącze /usr/bin/python2 -> (the real one) powinno być dostarczone przez pakiet Pythona, ale oczywiście nie w tym przypadku, ani w żadnej innej lokalizacji, w której można go znaleźć poprzez $PATH.

Powinieneś umieścić to łącze na swojej drodze w (odpowiednim) miejscu.

+0

Ale mam pythona w ścieżce, kiedy wpisuję "python" w moim wierszu poleceń, to otwiera terminal. Jak więc uwzględnić przeszłość zgodnie z zaleceniami? – murtaza52

+0

To dziwne. Normalnie, 'env' powinien sprawdzić ścieżkę. Zależy to również od okoliczności, w których wystąpił błąd: czy masz inną "$ PATH" niż zwykle? Co mówi 'jaki python2' w powłoce? – glglgl

+0

na "który python2", nie dostaję niczego w powłoce. Jak mam to zdefiniować? – murtaza52

10

Spróbuj tego polecenia w terminalu

sudo ln -s /usr/bin/python2.6 /usr/bin/python2

lub

sudo apt-get install python2

+0

Chciałbym przejść dowiązaniem symbolicznym, tak jak to zrobiłem w przeszłości, maszyna niedawno miała czyste przeinstalowanie do El Capitan. Nawet jako sudo w następujący sposób: 'sudo ln -s /usr/bin/python2.7/usr/bin/python2' otrzymuję następujące polecenie: ln:/usr/bin/python2: Operacja niedozwolona ' –

+0

Problem rozwiązany. Używając 'ln -sf' udało się to do pracy. Sprawdziłem, czy nie było już połączone za pomocą 'ls -la | bardziej "więc jest trochę tajemnicą, dlaczego' -f' działał nawet po zrobieniu 'man ln' i przeczytaniu o tym. W każdym razie problem rozwiązany. –

+1

FWIW, działa to na mojej wersji El Capitan: sudo ln -s /usr/bin/python2.7/usr/local/bin/python2 –

1

Na Ubuntu 12.04.

Aby dowiedzieć się, jaki pakiet posiada plik:

$ apt-file -F find /usr/bin/python2 
python-minimal: /usr/bin/python2 

Aby dowiedzieć się, jakie pakiety zależą od pakietu:

$ apt-cache rdepends python-minimal 
python-minimal 
Reverse Depends: 
    python2.7-minimal 
|livecd-rootfs 
    python-minimal:i386 
    python-support 
    python2.7-minimal 
    python 
|livecd-rootfs 

pokazać, że jeśli masz python pakiet następnie trzeba mieć python-minimal pakiet wtedy powinieneś mieć plik /usr/bin/python2.

Sprawdź, czy /usr/bin jest w wewnątrz emacsa. Jeśli to jest i nie można uruchomić /usr/bin/python2 z powłoki następnie można ponownie zainstalować python-minimal przywrócić /usr/bin/python2 plik:

$ sudo apt-get --reinstall install python-minimal 
Powiązane problemy