Уведомления

Группа в Telegram: @pythonsu

#1 Май 22, 2014 06:07:21

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Случай из жизни Python скрипта

Жил был Python интерпретатор версии 2.7 на Windows XP системе. Жил вполне себе не тужил. Обслуживал он скрипт foo.py, который начинался со строки

#! -*- coding: utf-8 -*-
обслуживал он его хорошо, без нареканий, всегда выдавая нужный результат пользователю, который мышкой два раза кликал по иконке файлика. Намедни, подселили в систему собрата его, младшего временем, да старшего версией - Python 3.4.1, да подселили тихонечко, на правах второго интерпретатора, без привязок ОС к py файликам. И начались странности странные - щелкает мышкой пользователь, да схлопывается программа привычная. В консолюшке командою foo.py вымолвил скриптик на языке понятном:
Unable to create process using '-*- coding: utf-8 -*- "H:\????????\...\foo.py" '
а явно интерпретатором указанным, заработал скриптик как в светлое времечко.
И призадумался пользователь в скромную выдачу Googl'ушки заглядывая - где же беда юродивая спрятана? И наткнулся пользователь на светлу мысленку и убрал восклицательный знак после решеточки, и небо прояснилось и жить снова хорошо стало, да только думы в головушки осталися, отчего ли так соседушка повлиял на собрата своего, который скриптик этот 3ий год гоняет постоянненько?



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#2 Май 22, 2014 06:17:52

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Случай из жизни Python скрипта

По pep файл должен начинаться с

#!/usr/bin/env python
# coding: utf-8

Офлайн

#3 Май 22, 2014 06:54:42

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Случай из жизни Python скрипта

Разумеется. Эта опечатка была исправленна сразу когда в глаза бросилась=)
вопрос то в другом - почему до установки Python3 все работало и так, а после уже не так.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#4 Май 22, 2014 07:41:35

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Случай из жизни Python скрипта

Сопоставление типа файла с программой обработки переназначено, наверно. Надёжнее всего в ярлыке жестко прописать команду.

Офлайн

#5 Май 22, 2014 11:17:46

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9873
Репутация: +  853  -
Профиль   Отправить e-mail  

Случай из жизни Python скрипта

JOHN_16
Намедни, подселили в систему собрата его, младшего временем, да старшего версией - Python 3.4.1
Собрал 3.4.1, строку кодировки воспринимает нормально - как и ожидалось. Но проверял на лине.

Singularity
По pep файл должен начинаться с
обеих строк может не быть
http://legacy.python.org/dev/peps/pep-0263/

строка запуска не обязательна, если запускаешь из командной строки
python3 script.py

JOHN_16
да подселили тихонечко, на правах второго интерпретатора, без привязок ОС к py файликам
JOHN_16
В консолюшке командою foo.py вымолвил скриптик на языке понятном:
Из командной строки запусти в виде
путь\python script.py



Офлайн

#6 Май 22, 2014 13:34:51

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Случай из жизни Python скрипта

Предположу, что пока была одна версия питона, не было нужды лезть в чибанг



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#7 Май 23, 2014 00:00:40

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Случай из жизни Python скрипта

PooH
вот, первое интересное предположение. Получается питон 2.7 пока был один имел в некоем месте (реестр винды?) информацию о том что он в системе единственный не обращал внимание на #! ?

py.user.next
Из командной строки запусти в виде
так то он работает как обычно - без каких либо сообщений. Сказанное PooH напоминает правильное направление мысли.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#8 Май 23, 2014 10:26:19

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9873
Репутация: +  853  -
Профиль   Отправить e-mail  

Случай из жизни Python скрипта

Так у тебя, походу, установлена переключалка питонов. Она же залазит в комментарий, чтобы запускать скрипт в соответствующей версии.

https://docs.python.org/3/whatsnew/3.3.html#pep-397-python-launcher-for-windows

The Python 3.3 Windows installer now includes a py launcher application that can be used to launch Python applications in a version independent fashion.

This launcher is invoked implicitly when double-clicking *.py files.



Отредактировано py.user.next (Май 23, 2014 10:34:25)

Офлайн

#9 Май 28, 2014 07:33:02

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Случай из жизни Python скрипта

py.user.next
думаю что “в яблочко” попадание. Вопрос закрыт.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version