Przede wszystkim from __future__ import print_function
musi to być pierwsza linia kodu w skrypcie (poza kilkoma wyjątkami wymienionymi poniżej). Po drugie, jak powiedziały inne odpowiedzi, musisz print
teraz użyć jako funkcji. O to chodzi w from __future__ import print_function
; przenieść print
funkcję z Pythona 3 do Pythona 2.6+.
from __future__ import print_function
import sys, os, time
for x in range(0,10):
print(x, sep=' ', end='')
time.sleep(1)
__future__
Instrukcje muszą znajdować się blisko początku pliku, ponieważ zmieniają fundamentalne elementy języka, a więc kompilator musi wiedzieć o nich od samego początku. Z dokumentacji :
Przyszła instrukcja jest rozpoznawana i traktowana specjalnie w czasie kompilacji: zmiany semantyki konstrukcji rdzenia są często implementowane przez generowanie innego kodu. Może się nawet zdarzyć, że nowa funkcja wprowadza nową niekompatybilną składnię (na przykład nowe słowo zastrzeżone), w którym to przypadku kompilator może wymagać odmiennego przeanalizowania modułu. Takie decyzje nie mogą zostać odłożone do czasu uruchomienia.
Dokumentacja wspomina również, że jedyne rzeczy, które mogą poprzedzać __future__
instrukcję, to dokumentacja modułu, komentarze, puste wiersze i inne przyszłe instrukcje.