Как установить python по умолчанию для запуска py файлов без ключевого слова python, т.е. $ django-admin.py manage.py startproject"
в оболочке bash?
2 ответа
Это зависит от первой строки в файле .py ("строка Шебанга"). Обычно вы увидите что-то вроде этого:
#!/usr/bin/python2.6
В этом случае сценарий при запуске в виде отдельного исполняемого файла будет запускаться с использованием версии Python по адресу /usr/bin/python2.6. Почему эта версия Python? Возможно, он был жестко запрограммирован в сценарии, но, скорее всего, он был установлен автоматически при установке сценария. Например, когда вы установили Django, вы либо:
- Загрузил исходный код и запустил
python setup.py
- в этом случае скрипт устанавливается для запуска с версией python, которую вы запустили setup.py с - Запустил
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.) - Запустил
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 для деталей.
найти длинную версию здесь:
короче:
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