2015-12-15 7 views
1

Как и многие люди, у меня есть версия для python версии 2.7 и 3.5. Некоторый код обратно совместим, а некоторые нет. Это связано с отсутствием модулей, которые существуют для 2.7, но не для 3.5. Поэтому у меня есть справедливый бит сценариев, равный 2,7 и справедливый бит, равный 3,5. По умолчанию расширение .py - это версия python на моем компьютере 3.5. Мой вопрос таков: как вы можете «рассказать» сценарию использовать другую версию python (например, 2.7), а не по умолчанию, используемую мной (3.5). Я слышал о Шебанге, но это только Linux.Shebang/выберите, какую версию python запускает скрипт (Windows)

+0

Вы хотите использовать один интерпретатор для одного модуля, а другой для другого модуля, загруженного в тот же скрипт? – tglaria

+0

* Это из-за отсутствия модулей, которые существуют для 2.7, но не для 3.5. * Это совсем не так. Существует ** много ** устаревшего кода, который все еще нуждается в поддержке, некоторые магазины все еще не хотят переключаться по какой-либо причине, и есть много учебников и книг, которые говорят, что студенты используют 2.7 по любой причине. Python 3.0 был выпущен в 2008 году, старый аргумент «Отсутствие модулей» просто не выдерживает сегодня воды. – MattDMo

+0

Есть недостаток модулей для python 3.5. Есть намного больше ПОДДЕРЖИВАЕМЫХ и РАБОЧИХ модулей для Python 2.7, чем 3.5. Я не знаю, что вы пытаетесь сделать, противоречив себе. – DanZoe

ответ

1

Как уже говорилось в комментарии Дж Ф. Себастьяна на this answer, то Python Launcher for Windows можно выбрать версию Python для запуска из притон линии. Согласно документам он устанавливается по умолчанию с Python 3.3 и более поздними версиями.

+0

Это сработало. Загруженный пусковой механизм Python из https://bitbucket.org/vinay.sajip/pylauncher/downloads Я тогда просто использовал обычный Шебанг. Вы можете, например, выполнить '#! Python2'' # python3' или если вы планируете использовать в системах unix: '#!/Usr/bin/env python3' или' #!/Usr/bin/env python2' – DanZoe

0

В оболочке Windows не используется строка shebang для различения типа файла. Я предполагаю, что вы хотите начать свой файл py с помощью другого интерпретатора, чем по умолчанию.

У вас есть 2 варианта:

  1. Если вы не смешивать версии 2.7 PY файлов и 3,5 PY файлов в одной папке, вы можете использовать virtualenv http://docs.python-guide.org/en/latest/dev/virtualenvs/

    Это создает изолированную среду и является очень полезный подход к изоляции любого проекта.

  2. Если у вас есть эти файлы, вы просто создаете .bat-файл, который задает путь к вашему интерпретатору Python 2.7 и выполняет файл py.

+0

Привет, @radek Я создал virtualenv (и venv использует python2.7). Я переместил сценарий внутри среды, но он все еще использует python 3.5, когда я дважды щелкаю (открываю) файл python. (Я также активировал его). – DanZoe

+0

Действительно, он не работает для двойного щелчка. Это полезно для вызова из командной строки. Преимущество venv в том, что вы используете только те дополнительные библиотеки, которые вам нужны. – Radek