Как я могу запустить скрипт 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. Это может или не может помочь, но я использую это много, чтобы сделать мои сценарии и .команда лучше работать.