Как я могу запустить скрипт python с терминала в Mac OS X без необходимости вводить полный путь?

Я на Mac OS 10.6 Snow Leopard, и я пытаюсь добавить каталог в переменную PATH, чтобы я мог запустить крошечный скрипт, который я написал, просто набрав: python alarm.py в подсказке терминала.

Я положил путь в мой .файл профиля и, кажется, появляется, когда я echo $PATH, но python все еще не может найти скрипт, который я поместил в этот каталог.

вот содержимое моего .файл профиля в моем домашнем каталоге:

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

вот вывод echo $PATH, где все вроде бы хорошо:

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

вот сценарий, который я пытаюсь запустить:

~ toby$ ls /Users/tobylieven/Documents/my_scripts 
-rwxrwxrwx@ 1 tobylieven  staff  276 17 Jan 21:17 alarm.py

вот команда, которую я пытаюсь использовать для запуска сценария, и сообщение об ошибке, которое я получаю вместо этого:

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

если у кого-то есть идея, что я могу делать неправильно, это было бы здорово. Большое спасибо.

4 ответов


путь предназначен только для исполняемых файлов, а не для скриптов python. Добавьте в начало скрипта Python следующее:

#!/usr/bin/env python

и работать

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

тогда вы можете ввести просто alarm.py для выполнения вашей программы.


изменить alarm.py в том числе:

#!/bin/python

как самая первая строка в файле.

(или / usr/bin / python, в зависимости от того, где находится интерпретатор python. Вы можете понять это, набрав:which python в терминале.)

вы можете просто запустить alarm.py вместо python alarm.py.

например:

~ toby$ alarm.py  

и phihag, который избил меня на несколько секунд, прав, вам нужно добавить разрешения на выполнение (через chmod), чтобы alarm.py.


вам нужно изменить конкретную переменную пути Python: PYTHONPATH.

Так:

export PYTHONPATH=/Users/tobylieven/Documents/my_scripts

должны вас работать.

посмотреть: путь поиска модуля Python


что-то интересное, с чем я действительно боролся на OS X, выходя из окна, заключается в том, что вам очень трудно получить каталог вашего текущего скрипта.

Я нашел это.

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

теперь вы можете выполнить файл python относительно выполненного скрипта вместо того, чтобы знать точный путь, где находится ваш файл python. Это может или не может помочь, но я использую это много, чтобы сделать мои сценарии и .команда лучше работать.