2011-01-17 2 views
7

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

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

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

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

Вот вывод эхо $ 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 
[email protected] 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 

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

ответ

15

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

#!/usr/bin/env python 

и запустить

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

Затем вы можете ввести только alarm.py выполнить свою программу.

+1

Удивительный! Оно работает :). Большое спасибо: D. Просто, чтобы люди знали, вы набираете «#» на macbook pro, нажимая alt + 3. – tobuslieven

3

Вам необходимо изменить переменную пути Python: PYTHONPATH.

Итак:

export PYTHONPATH=/Users/tobylieven/Documents/my_scripts 

вы должны получить работу.

См: Python Module Search path

4

изменение alarm.py включать:

#!/bin/python 

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

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

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

.: например

~ toby$ alarm.py 

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

0

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

Я нашел это.

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

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

Смежные вопросы