Python unbuffered print v cmd

Re:Python unbuffered print v cmd
« Odpověď #15 kdy: 25. 01. 2022, 16:17:07 »
V těch obrázcích je všechno, co se k tomu dá říct a taky
všechno co, jsem k tomu už několikrát napsal :-)
Tedy žádný cygwin. Prostě jen windowsy, jen gvim pro windowsy, jen příkazová řádka cmd a na ní jen x.py .
A to je celé. Připadám si jako čím dál zajímavější kouzelník :-)
Pořád někdo tvrdí že windowsy neumí #! . Je to nesmysl.
Podívete se na obrázky: program reaguje na to, zda v hashbang-u je nebo není -u .
Myslím že mezi samotným Pythonem-interpretem a zdrojákem v pythonu
je cosi, co se nainstaluje s Pythonem a jmenuje se Python Launcher.
Zadáním python na příkazové řádce se nespustí Python ale Microsoft store :-)
Na spuštění Python-interpretu musíte použít příkaz py .
Mluvím o Windows 10 (64bit) a Python 3.9.1 .


Re:Python unbuffered print v cmd
« Odpověď #16 kdy: 25. 01. 2022, 17:35:54 »
Co je prosím přesně napsáno na příkazové řádce té konzole před výpisem 000000000?
A co se stane když to pustíte v powershelu?
Gréta je nejlepší.

Re:Python unbuffered print v cmd
« Odpověď #17 kdy: 25. 01. 2022, 20:33:09 »
Co je prosím přesně napsáno na příkazové řádce té konzole před výpisem 000000000?

To se nedá zjistit, protože pokud výstup přesměruji do souboru, začne se program chovat správně - výpis je kompletní.

A co se stane když to pustíte v powershelu?

Chování stejné - viz příloha

Re:Python unbuffered print v cmd
« Odpověď #18 kdy: 25. 01. 2022, 21:11:56 »
Mě to dělá něco jiného - po spuštění skriptu >python pokus.py mi to vypisuje do té samé konzole nebo PS, ve kterém jsem to spustil. Neotvírá mi to novou.
Taky nemáte default znaky/font v tej konzoli, takže máte něco někde přenastavené. Víc netuším.
Gréta je nejlepší.

Re:Python unbuffered print v cmd
« Odpověď #19 kdy: 25. 01. 2022, 22:48:14 »
V těch obrázcích je všechno, co se k tomu dá říct a taky
všechno co, jsem k tomu už několikrát napsal :-)
Tedy žádný cygwin. Prostě jen windowsy, jen gvim pro windowsy, jen příkazová řádka cmd a na ní jen x.py .
A to je celé. Připadám si jako čím dál zajímavější kouzelník :-)
Pořád někdo tvrdí že windowsy neumí #! . Je to nesmysl.
Podívete se na obrázky: program reaguje na to, zda v hashbang-u je nebo není -u .
Myslím že mezi samotným Pythonem-interpretem a zdrojákem v pythonu
je cosi, co se nainstaluje s Pythonem a jmenuje se Python Launcher.
Zadáním python na příkazové řádce se nespustí Python ale Microsoft store :-)
Na spuštění Python-interpretu musíte použít příkaz py .
Mluvím o Windows 10 (64bit) a Python 3.9.1 .

To, že to spouštíš přes Python Launcher jsi předtím nenapsal, jsem vůbec netušil, že tenhle projekt ještě žije. V tom případě ale sám Python Launcher interpretuje ten #! a nikoliv Windows, ty to prostě neumí. Je možné, že právě on tam dělá ten problém ořezávání.

Můžeš zkusit to přímo spustit přes python.exe -u py3.py?



Re:Python unbuffered print v cmd
« Odpověď #20 kdy: 26. 01. 2022, 15:21:39 »
Pokud je stejný script puštěn přímo pomocí python.exe tak:

1) Není zohleňováno nastavení '-u' z 1. řádku: '#!/usr/bin/python3 -u'
Jinak řečeno: to že je to jindy zohledněno je práce Python Launcheru - py.exe .

2) Python dělá popisovanou chybu že nevytlačí celý řetězec pokud je
použito volání 'python.exe -u' , nebo pokud je vypnutí bufferování
uděláno v programu.


Re:Python unbuffered print v cmd
« Odpověď #21 kdy: 26. 01. 2022, 19:19:36 »
Omlouvám se za možná stupidní dotaz, k čemu to je, anebo, čemu to teda vadí?
Tak prostě nepoužívejte to -u?
Možná nahlásit jako bug ?
Gréta je nejlepší.

Re:Python unbuffered print v cmd
« Odpověď #22 kdy: 26. 01. 2022, 20:51:55 »
Není to stupidní dotaz.
Bral jsem to jako upozornění python-veřejnosti na podivnost.
Po zkušenosti s celou touto diskuzí a s přihlédnutím ke svým
komunikačním dovednostem v cizím jazyku se nedám na nějaký
bug report.
Sorry. Třeba se najde někdo schopnější.

Re:Python unbuffered print v cmd
« Odpověď #23 kdy: 27. 01. 2022, 11:11:47 »
Po zkušenosti s celou touto diskuzí a s přihlédnutím ke svým
komunikačním dovednostem v cizím jazyku se nedám na nějaký
bug report.
Sorry. Třeba se najde někdo schopnější.

To je myslím docela škoda, pokud se opravdu jedná o bug. Přinejmenším by to byla zajímavá příležitost zkusit ty komunikační dovednosti trošku vylepšit. Z vlastní zkušenosti bych doporučil ten popis bugu strukturovat pro lepší srozumitelnost asi takhle:

  • Popis situace, kterou jsem řešil a kde došlo k problému.
  • Co nejpřesnější popis prostředí - verze systému, pythonu, ten zmíněný launcher(?), ...
  • Popis kroků vedoucích k vyvolání uvedeného chování - např.: 1. vytvoř skript s tímhle obsahem; 2. spusť ho přesně tímhle způsobem v příkazovém řádku.
  • Popis výsledku výše uvedených kroků ("actual results").
  • Popis očekávaných výsledku uvedených kroků v situaci, kdy by to podle tebe fungovalo správně ("expected results").
  • Případně nějaká další upřesnění nebo postřehy.

Re:Python unbuffered print v cmd
« Odpověď #24 kdy: 27. 01. 2022, 11:37:55 »
Není to stupidní dotaz.
Bral jsem to jako upozornění python-veřejnosti na podivnost.
Po zkušenosti s celou touto diskuzí a s přihlédnutím ke svým
komunikačním dovednostem v cizím jazyku se nedám na nějaký
bug report.
Sorry. Třeba se najde někdo schopnější.


Díky za odpověď.
Jak píše uwe, zkus to naformulovat jako bug sem, a třeba se to někomu podaří replikovat a ten bug pak může nahlásit on... Předpokládám, že tak to i bylo na začátku míněno...
Gréta je nejlepší.

Re:Python unbuffered print v cmd
« Odpověď #25 kdy: 10. 02. 2022, 19:23:13 »
Pokusil jsem se to shrnout:

Windows 10, verze 21h2, 64bit:

c:\prj\py3>type x.py
TXT = ""
for I in range(3000):
        TXT += f"{I:09d}\n"
print(TXT)
print("Konec")

c:\prj\py3>C:\Users\uzivatel\AppData\Local\Programs\Python\Python39\python.exe x.py
...
000002988
000002989
000002990
000002991
000002992
000002993
000002994
000002995
000002996
000002997
000002998
000002999

Konec

c:\prj\py3>C:\Users\uzivatel\AppData\Local\Programs\Python\Python39\python.exe -u x.py
...
000000737
000000738
000000739
000000740
000000741
000000742
000000743
000000744
000000745
000000746
000000747
000000748
000000749

Konec

c:\prj\py3>  :(


Re:Python unbuffered print v cmd
« Odpověď #26 kdy: 10. 02. 2022, 22:20:40 »
Nebude to tohle: https://github.com/python/cpython/pull/26678
zda se ze to jeste neni zamergovany

Re:Python unbuffered print v cmd
« Odpověď #27 kdy: 11. 02. 2022, 09:20:44 »
Nebude to tohle: https://github.com/python/cpython/pull/26678
zda se ze to jeste neni zamergovany

Tak jsem doufal, že jsem objevil Ameriku, ale mám zpoždění rok a půl.
To Cimrman je alespoň míjel ve dveřích!
:-))