Как открыть сценарии Python непосредственно путем ввода на их имя в терминале (Mac OS X)

Я работаю над установкой django и выполнением его в моей системе.

У меня есть проблема, хотя, в этом учебном руководстве, создающем проект, объяснен путем выполнения команды

django-admin.py startproject mysite

Моя проблема - то, что это не работает. Я изменился на каталог, где django-admin.py расположен и выполнил команду

chmod +x django-admin.py

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

python /location/of/django-admin.py startproject mysite

который привел к результату, я ожидал. Моя проблема: Что я должен измениться/настроить таким образом что команда

django-admin.py startproject mysite

было бы достаточно?

Вот некоторые эксперименты:

21:09~/Desktop/HI/NSN/Polls > django-admin.py startproject mysite
-bash: django-admin.py: command not found
21:09~/Desktop/HI/NSN/Polls > ./django-admin.py startproject mysite
-bash: ./django-admin.py: No such file or directory
21:09~/Desktop/HI/NSN/Polls > python django-admin.py startproject mysite
python: can't open file 'django-admin.py': [Errno 2] No such file or directory
21:09~/Desktop/HI/NSN/Polls > /opt/local/lib/python2.4/site-packages/django/bin/django-admin.py startproject prufa1
-bash: /opt/local/lib/python2.4/site-packages/django/bin/django-admin.py: /opt/local/bin: bad interpreter: Permission denied
21:09~/Desktop/HI/NSN/Polls > sudo /opt/local/lib/python2.4/site-packages/django/bin/django-admin.py startproject prufa1Password:
sudo: unable to execute /opt/local/lib/python2.4/site-packages/django/bin/django-admin.py: Permission denied
21:09~/Desktop/HI/NSN/Polls > sudo /opt/local/lib/python2.4/site-packages/django/bin/django-admin.py startproject prufa1sudo: unable to execute /opt/local/lib/python2.4/site-packages/django/bin/django-admin.py: Permission denied
21:09~/Desktop/HI/NSN/Polls > python /opt/local/lib/python2.4/site-packages/django/bin/django-admin.py startproject prufa1
21:09~/Desktop/HI/NSN/Polls > ls
mysite prufa1

Заключительное редактирование: проблема решена, см. ответ C Ian для правильного решения. Поблагодарите Вас все за помощь моему, это было очень быстро!

1
задан 05.03.2011, 18:08

3 ответа

Существует немного больше универсальной версии @Matt Jenkins hashbang (! #), подсказка можно использовать для создания сценария немного более портативным. Удостоверьтесь, что первая строка в файле:

#!/usr/bin/env python
...everything else...

Это говорит, "ищут названную программу python путем поиска моего PATH и выполненная остальная часть этого сценария с той программой".

Необходимо будет также установить выполнение, обдумал сценарий с:

chmod +x django-admin.py

Я упоминаю это для полноты, отмечая, что Вы уже сделали это.

Наконец, PATH переменная на самом деле не содержит . в нем (текущий рабочий каталог). Это - меры безопасности, и я не рекомендую изменить ту установку (она мешает Вам звонить ./rm когда Вы имели в виду оболочку rm например). Таким образом, необходимо назвать сценарий с:

 ./django-admin.py startproject mysite

Это говорит, "смотрят в текущем рабочем каталоге для django-admin.py" вместо "поиска PATH переменная", которая является тем, что происходит, если Вы опускаете ./ часть.

3
ответ дан 12.12.2019, 09:14

Первая строка в файле должна содержать программу, которая запускает скрипт, снабженный префиксом #! (известный как hashbang)

Например:

#!/path/to/python
...python code follows...

Затем можно установить исполняемый файл, обдумал файл, и оболочка интерпретирует его как сценарий с помощью программы, найденной в первой строке как интерпретатор.

Это часто используется со сценариями оболочки, например:

#!/bin/sh

for FILE in `ls`
{
    echo "Filename: ${FILE}"
}
1
ответ дан 12.12.2019, 09:14
  1. Выберите файл в Средстве поиска путем нажатия на него однажды.

  2. Из меню File выбор Получает Информацию.

  3. В окне Info нажмите треугольник рядом с "Открытым с": развернуть тот раздел окна.

  4. Из выпадающего меню, которое появляется, выберите приложение, которое Вы хотите использовать для открытия файла.

Источник: Университет Индианы - КБ: Как я присваиваю приложение для открытия определенных типов файлов?

0
ответ дан 12.12.2019, 09:14

Теги

Похожие вопросы