2011-01-17 13 views
7

Jestem na Mac OS 10.6 Snow Leopard i próbuję dodać katalog do mojej zmiennej PATH, dzięki czemu mogę uruchomić mały skrypt napisałem po prostu wpisując: python alarm.py na monicie terminalu.Jak mogę uruchomić skrypt Pythona z terminala w Mac OS X bez konieczności wpisywania pełnej ścieżki?

Umieszczam ścieżkę w moim pliku .profile i wydaje się, że pojawia się, gdy wysyłam echo $ PATH, ale python nadal nie może znaleźć skryptu, który umieściłem w tym katalogu.

Oto zawartość mojego pliku .profile w moim katalogu domowym:

~ toby$ vim .profile 
export PATH=/Users/tobylieven/Documents/my_scripts:$PATH 

Oto wyjście echo $ PATH, gdzie wszystko wydaje się dobrze:

~ toby$ echo $PATH 
/Users/tobylieven/Documents/my_scripts:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin 

Oto skrypt jestem próbuje uruchomić:

~ toby$ ls /Users/tobylieven/Documents/my_scripts 
[email protected] 1 tobylieven staff 276 17 Jan 21:17 alarm.py 

Oto polecenie, którego próbuję użyć, aby uruchomić skrypt i komunikat o błędzie zamiast tego zamiast:

~ toby$ python alarm.py 
python: can't open file 'alarm.py': [Errno 2] No such file or directory 

Jeśli ktoś ma pojęcie, co mogę robić źle, to byłoby wspaniale. Wielkie dzięki.

Odpowiedz

15

ścieżka jest tylko dla plików wykonywalnych, a nie dla skryptów Pythona. Dodaj poniższe linie do początku skryptu Pythona:

#!/usr/bin/env python 

i uruchomić

sudo chmod a+x /Users/tobylieven/Documents/my_scripts/alarm.py 

Następnie można wpisać tylko alarm.py wykonać swój program.

+1

Awesome! To działa :). Wielkie dzięki: D. Aby ludzie wiedzieli, wpisujesz "#" na macbook pro, naciskając alt + 3. – tobuslieven

3

Należy zmodyfikować zmienną ścieżki specyficzną dla języka Python: PYTHONPATH.

Więc:

export PYTHONPATH=/Users/tobylieven/Documents/my_scripts 

powinno Ci pracę.

Patrz: Python Module Search path

4

zmiana alarm.py obejmuje:

#!/bin/python 

jako pierwszej linii w pliku.

(. Lub/usr/bin/python, w zależności od tego, gdzie interpreter Pythona znajduje Możesz dowiedzieć się tego wpisując: which python w terminalu).

Można wtedy wystarczy uruchomić alarm.py zamiast python alarm.py.

np .:

~ toby$ alarm.py 

I phihag który pokonał mnie przez kilka sekund ma rację, trzeba dodać uprawnienia do wykonywania (przez chmod) do alarm.py.

0

Ciekawostką, z którą naprawdę borykałem się w systemie OS X pochodzącym z Window'a, jest to, że bardzo trudno jest uzyskać katalog aktualnego skryptu.

Znalazłem to.

#! /bin/zsh 
cd "${0:h}" 

Teraz można wykonać plik Pythona względem wykonanego skryptu, zamiast znać dokładną ścieżkę, gdzie znajduje się plik Pythona. To może lub nie może pomóc, ale używam go bardzo, aby moje skrypty i pliki .com działały lepiej.

Powiązane problemy