Как установить python по умолчанию для запуска py файлов без ключевого слова python, т.е. $ django-admin.py manage.py startproject" в оболочке bash?

2 ответа2

2

Это зависит от первой строки в файле .py ("строка Шебанга"). Обычно вы увидите что-то вроде этого:

#!/usr/bin/python2.6

В этом случае сценарий при запуске в виде отдельного исполняемого файла будет запускаться с использованием версии Python по адресу /usr/bin/python2.6. Почему эта версия Python? Возможно, он был жестко запрограммирован в сценарии, но, скорее всего, он был установлен автоматически при установке сценария. Например, когда вы установили Django, вы либо:

  1. Загрузил исходный код и запустил python setup.py - в этом случае скрипт устанавливается для запуска с версией python, которую вы запустили setup.py с
  2. Запустил easy_install django - в этом случае скрипт устанавливается для запуска с той же версией python, что и easy_install (также скрипт Python). (Вот почему вы часто видите в списке несколько версий easy_install, например, у меня есть easy_install-2.5, easy_install-2.6 и easy-install-2.7. Когда я просто easy_install он использует easy_install-2.6.)
  3. Запустил pip install django - почти то же самое, что и easy_install.

Чтобы запустить скрипт с другой версией Python, вы можете изменить строку shebang (например, прочитать #!/usr/bin/python2.7) или укажите свой питон в командной строке (например, /path/to/python2.7 /path/to/django-admin.py args). Однако обратите внимание, что такие сценарии, как django-admin.py, являются лишь интерфейсом для большого набора библиотек (в данном случае, Django), и эти библиотеки будут установлены по умолчанию в расположении библиотеки для конкретной версии Python. , Например, если первая строка django-admin.py указывает на то, что он работает под Python 2.6, библиотеки Django будут установлены в специфичную для Python 2.6 директорию библиотеки и по умолчанию не будут доступны, например, для Python 2.7. ,

В других случаях вы увидите строку Шебанга, например:

#!/usr/bin/env python

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

В любом случае, вы должны рассмотреть использование virtualenvwrapper, расширения в virtualenv. Он позволяет быстро и легко настроить несколько виртуальных сред для проектов Python, каждая из которых имеет собственную версию Python по умолчанию и библиотеки.

Обновление: поскольку в вашем вопросе упоминается OS X, также стоит упомянуть, что в OS X /usr /bin /python запускает настраиваемую пользователем версию Python. Посмотрите man-страницу OS X python для деталей.

0

найти длинную версию здесь:

короче:

defaults write com.apple.versioner.python Version x.x

/usr/bin/python -V
-> Python x.x.y

для быстрого переключения внутри запущенного сеанса CLI сделайте

export VERSIONER_PYTHON_VERSION=2.5
/usr/bin/python -V
-> Python 2.5.6

вернуться к standard python по умолчанию

unset VERSIONER_PYTHON_VERSION

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .