LINUX.ORG.RU

Какая-то фигня с питоном в федоре.

 ,


0

2

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

Сначала было так:

[root@openvpn ~]# PyDDNS.py 
  File "/usr/bin/PyDDNS.py", line 37
SyntaxError: Non-ASCII character '\xd0' in file /usr/bin/PyDDNS.py on line 37, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

Ну окей, добавил я в начало «# -*- coding: UTF-8 -*-», запустился.

Но теперь он выдаёт:

[root@openvpn ~]# PyDDNS.py 
  File "/usr/bin/PyDDNS.py", line 37
    print('Ошибка при получении доменных имён: ' + j['error'], file=stderr)
                                                                                                 ^
SyntaxError: invalid syntax

3.14159265359ц информативно. В конце строчки ничего кроме enter нет. Пробовал его даже удалять, всё равно не фурычит. Собственно, что в федоре такого особенного, что в ней питон как-то иначе работает?

Deleted

Что с тобой не так? Почему ты догадался вставить указание кодировки сорца, но не осилил узнать, что в Python 3 print это функция (и твой скрипт написан под Python 3, что видно по синтаксису print, так как указан именованный аргумент file), а в Python 2 — инструкция (statement), и для него корректной записью будет

import sys
print >> sys.stderr, 'Ошибка при получении доменных имён: ' + j['error']

Virtuos86 ★★★★★
()
Ответ на: комментарий от Virtuos86

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

Deleted
()
Ответ на: комментарий от Jopich1

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

Deleted
()
Ответ на: комментарий от Deleted

Я откуда знал, что в федоре по дефолту второй питон?

Тебе питон написал, что ошибка синтаксиса. Тут или в скрипте ошибка, или он запущен несовместимой версией питона — про отличия хотя бы второго питона от третьего надо знать, а ведь есть еще несоответствия и в рамках второй версии, например, дополненный синтаксис with или yield.

Virtuos86 ★★★★★
()
Ответ на: комментарий от Virtuos86

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

Deleted
()
Ответ на: комментарий от Deleted

А зря. Питона полно на системном уровне, а многие системные скрипты написаны под второй питон, и кому надо их переписывать под хипсторский третий?

Virtuos86 ★★★★★
()
Ответ на: комментарий от bookman900

Ну а зачем тогда третий написали? Написали же зачем-то. Значит нужно. Эдак и GTK3 не надо и Qt5 и нахер вообще всё пишут, давайте вернёмся в каменный век и будем наслаждаться паниками ядра потому что оно, видите ли, не умеет новое оборудование. SATA тоже нафиг не надо, когда есть IDE. Да и флешки нафига, теряются же. Дискет хватит всем. И жужжит прикольно. А помните DSL модемы? Как классно они звучали. Ишь, хипстота. Оптоволокно подавай.

Deleted
()
Ответ на: комментарий от Deleted

DSL модемы никак не жужжали и их ещё много где используют.

pawnhearts ★★★★★
()
Ответ на: комментарий от Jopich1

обычно пишут в скрипте /usr/bin/python3

Мудаки обычно пишут в скрипте /usr/bin/python3

fixed

anonymous
()

Какая-то фигня с питоном в федоре.

Исправь название на: Какая-то фигня с питоном у меня в голосе.

anonymous
()

Скоро выйдет четвёртый Python и все скрипты снова отдадут.

Гвидо — не может в нормальное проектирование.

Скриньте.

EXL ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.