Python Flask nefunguje

Jos

Python Flask nefunguje
« kdy: 08. 01. 2019, 15:33:49 »
Zdravim.

Pouzivam Python 3.7. Instaloval som flask cez pip
Kód: [Vybrat]
pip install flask vsetko zbehlo v pohode ale ked pouzijem
Citace
from flask import Flask, jsonify, request, render_template
Vyhadzuje mi to chybu
Kód: [Vybrat]
File "C:\Users\user\AppData\Local\Programs\Python\Python37\lib\site-packages\flask\app.py", line 938, in run
    cli.show_server_banner(self.env, self.debug, self.name, False)
  File "C:\Users\user\AppData\Local\Programs\Python\Python37\lib\site-packages\flask\cli.py", line 629, in show_server_banner
    click.echo(message)
  File "C:\Users\user\AppData\Local\Programs\Python\Python37\lib\site-packages\click\utils.py", line 218, in echo
    file = _default_text_stdout()
  File "C:\Users\user\AppData\Local\Programs\Python\Python37\lib\site-packages\click\_compat.py", line 675, in func
    rv = wrapper_func()
  File "C:\Users\user\AppData\Local\Programs\Python\Python37\lib\site-packages\click\_compat.py", line 436, in get_text_stdout
    rv = _get_windows_console_stream(sys.stdout, encoding, errors)
  File "C:\Users\user\AppData\Local\Programs\Python\Python37\lib\site-packages\click\_winconsole.py", line 295, in _get_windows_console_stream
    func = _stream_factories.get(f.fileno())
io.UnsupportedOperation: fileno
Skusal som oddinstalot a znovu instalovat , pozrel x navodov na nete ale bez uspechu. Vedel by niekto poradit?
« Poslední změna: 08. 01. 2019, 20:36:29 od Petr Krčmář »


gll

  • ****
  • 429
    • Zobrazit profil
    • E-mail
Re:Python flask
« Odpověď #1 kdy: 08. 01. 2019, 15:37:22 »
jak to spouštíš?

Re:Python flask
« Odpověď #2 kdy: 08. 01. 2019, 16:26:41 »
Najdřív bych se naučil instalovat věci do virtualenvu. K tomu použij modul venv se standardní knihovny.
Pokud máš víc verzí Pythonu můžeš použít i příkaz py.exe a vybrat si jakou chceš verzi, v adresáři s projektem např.

Kód: [Vybrat]
$ py -3.7 -m venv .venvnebo
Kód: [Vybrat]
$ py -3.6 -m venv .venv
Pokud nepoužiješ `py` zavolá se python interpretr který je v cestě dříve, zkus třeba `python --version` a uvidíš který to je např u mně je první 3.6 i když mám i 3.7.

Kód: [Vybrat]
$ python --version
Python 3.6.6

Pak musíš prostředí aktivovat:

Kód: [Vybrat]
$ .venv\Scripts\activate
Teď jsi ve virtuálním prostředí, izolovaný od globálního.

Kód: [Vybrat]
$ where python
C:\Users\uetoyo\projects\.venv\Scripts\python.exe
C:\Users\uetoyo\AppData\Local\Programs\Python\Python36\python.exe
C:\Users\uetoyo\AppData\Local\Programs\Python\Python37\python.exe

A teď teprv instaluj Flask!

Kód: [Vybrat]
$ pip install flask
Aplikaci pak ulož třeba do souboru app.py a ten spusť pomocí

Kód: [Vybrat]
$ python app.py
Běží?

Flask je dobrý dát do requirements.txt nebo použij Pipenv či Poetry, které dělají spoustu věcí za tebe, ale s virtuálním prostředím se nauč i tak pracovat.

- https://docs.python.org/3/library/venv.html
- https://github.com/pypa/pipenv
- https://github.com/sdispater/poetry
« Poslední změna: 08. 01. 2019, 16:30:50 od uetoyo »

operator

Re:Python flask
« Odpověď #3 kdy: 08. 01. 2019, 16:41:51 »
Pravdepodobne se jedna o tuto chybu: https://stackoverflow.com/questions/31080829/python-error-io-unsupportedoperation-fileno/31081957#31081957 To jest spoustej to z prikazove radky nikoliv z idle. Virtualni prostredi je pro zacatecnika zbytecne hardcore, neni potreba, dokud nepotrebujes pouzivat soucasne nekolik verzi pythonu ci knihoven.

Re:Python flask
« Odpověď #4 kdy: 08. 01. 2019, 17:15:04 »
Pravdepodobne se jedna o tuto chybu: https://stackoverflow.com/questions/31080829/python-error-io-unsupportedoperation-fileno/31081957#31081957 To jest spoustej to z prikazove radky nikoliv z idle. Virtualni prostredi je pro zacatecnika zbytecne hardcore, neni potreba, dokud nepotrebujes pouzivat soucasne nekolik verzi pythonu ci knihoven.

Tak nějak se ho snažím navést k použití konzole a ještě mu ukázat jak použít virtuál. Pokud pracuje s Flaskem či jinými knihovnami a nepíše jen skriptíky se standardní knihovnou, tak považuju za důležitý aby o tom věděl. Virtuální prostředí řeší hlavně kolizi knihoven. Nevím ale hardcore mi přijde pro začátečníka hledat chyby z důvodu kolize knihoven a ne párkrát ťuknout do konzole a ušetřit si nervy. Pip je navíc notoricky známej, že co jednou nainstaluješ tak pak je problém odinstalovat, tedy přesněji řečeno odinstalovat všechny závislosti té knihovny.

Jinak pokud chceš tak asi zkuss z konzole:

Kód: [Vybrat]
python app.py
Chyba bude v balíku `click` viz https://github.com/pallets/flask/issues/2771

BTW Pokud opravdu používáš IDEL, zkus radši Sublime Text nebo VS Code.
« Poslední změna: 08. 01. 2019, 17:24:50 od uetoyo »


Sunar

Re:Python flask
« Odpověď #5 kdy: 08. 01. 2019, 19:50:53 »
Pravdepodobne se jedna o tuto chybu: https://stackoverflow.com/questions/31080829/python-error-io-unsupportedoperation-fileno/31081957#31081957 To jest spoustej to z prikazove radky nikoliv z idle. Virtualni prostredi je pro zacatecnika zbytecne hardcore, neni potreba, dokud nepotrebujes pouzivat soucasne nekolik verzi pythonu ci knihoven.

Tak nějak se ho snažím navést k použití konzole a ještě mu ukázat jak použít virtuál. Pokud pracuje s Flaskem či jinými knihovnami a nepíše jen skriptíky se standardní knihovnou, tak považuju za důležitý aby o tom věděl. Virtuální prostředí řeší hlavně kolizi knihoven. Nevím ale hardcore mi přijde pro začátečníka hledat chyby z důvodu kolize knihoven a ne párkrát ťuknout do konzole a ušetřit si nervy. Pip je navíc notoricky známej, že co jednou nainstaluješ tak pak je problém odinstalovat, tedy přesněji řečeno odinstalovat všechny závislosti té knihovny.

Jinak pokud chceš tak asi zkuss z konzole:

Kód: [Vybrat]
python app.py
Chyba bude v balíku `click` viz https://github.com/pallets/flask/issues/2771

BTW Pokud opravdu používáš IDEL, zkus radši Sublime Text nebo VS Code.

Kolize knihoven? S tím jsem se nikdy nesetkal. Zato už jsem se setkal s konzolí ve windows, je strašná a něco v ní dělat je za trest. To je velká bariéra, která má potenciál odstrašit spoustu nováčků. Virtuální prostředí není pro nováčky smysluplné, protože všechno budou stejně dělat v jednom a ani nemá smysl, aby si pro každý svůj pokus pořád všechno dokola instalovali.

Re:Python flask
« Odpověď #6 kdy: 08. 01. 2019, 20:31:16 »
Pravdepodobne se jedna o tuto chybu: https://stackoverflow.com/questions/31080829/python-error-io-unsupportedoperation-fileno/31081957#31081957 To jest spoustej to z prikazove radky nikoliv z idle. Virtualni prostredi je pro zacatecnika zbytecne hardcore, neni potreba, dokud nepotrebujes pouzivat soucasne nekolik verzi pythonu ci knihoven.

Tak nějak se ho snažím navést k použití konzole a ještě mu ukázat jak použít virtuál. Pokud pracuje s Flaskem či jinými knihovnami a nepíše jen skriptíky se standardní knihovnou, tak považuju za důležitý aby o tom věděl. Virtuální prostředí řeší hlavně kolizi knihoven. Nevím ale hardcore mi přijde pro začátečníka hledat chyby z důvodu kolize knihoven a ne párkrát ťuknout do konzole a ušetřit si nervy. Pip je navíc notoricky známej, že co jednou nainstaluješ tak pak je problém odinstalovat, tedy přesněji řečeno odinstalovat všechny závislosti té knihovny.

Jinak pokud chceš tak asi zkuss z konzole:

Kód: [Vybrat]
python app.py
Chyba bude v balíku `click` viz https://github.com/pallets/flask/issues/2771

BTW Pokud opravdu používáš IDEL, zkus radši Sublime Text nebo VS Code.

Kolize knihoven? S tím jsem se nikdy nesetkal. Zato už jsem se setkal s konzolí ve windows, je strašná a něco v ní dělat je za trest. To je velká bariéra, která má potenciál odstrašit spoustu nováčků. Virtuální prostředí není pro nováčky smysluplné, protože všechno budou stejně dělat v jednom a ani nemá smysl, aby si pro každý svůj pokus pořád všechno dokola instalovali.

Používám ConeEmu a jde to. Proč by si všechno instalovali znovu? Nechápu co řešíš. Klidně ať si udělá jeden virtuál a do toho to všechno mastí.

Citace
Kolize knihoven? S tím jsem se nikdy n
esetkal.

 Řikám ti, že dřív nebo pozdějc si udělá bordel v globální instalaci, jestli se ti nikdy nestalo že nějaká knihovna chtěla numpy X a jiná fungovala s numpy Y a navíc s pandasem Z, tak to máš štěstí.

 Na skriptíky dobrý, ale jinak teda nevím, jak to děláš.
« Poslední změna: 08. 01. 2019, 20:36:54 od uetoyo »

Re:Python flask
« Odpověď #7 kdy: 08. 01. 2019, 20:38:28 »
BTW: https://us.pycon.org/2015/schedule/presentation/421/
Úplně stejně se to dělá v node, tam je to dokonce ješte jednodušší, protože je to ideální výchozí chování.
« Poslední změna: 08. 01. 2019, 20:45:01 od uetoyo »

operator

Re:Python flask
« Odpověď #8 kdy: 10. 01. 2019, 05:44:31 »
Řikám ti, že dřív nebo pozdějc si udělá bordel v globální instalaci, jestli se ti nikdy nestalo že nějaká knihovna chtěla numpy X a jiná fungovala s numpy Y a navíc s pandasem Z, tak to máš štěstí.

Na skriptíky dobrý, ale jinak teda nevím, jak to děláš.

Ne, to se mi vážně nikdy nestalo (a Python používám od časů, kdy se přecházelo z Pythonu 1 na Python 2). Knihovny instaluji standardně přes pip, udržuji je aktuální. Imho děláš něco špatně. Chápu, že pro komerční projekty je potřeba mít prostředí definované a zmrazené, ale to není případ začátečníka. A pokud tvrdíš, že má vše dělat v jednom virtuálním prostředí, tak jeho použití nedává žádný smysl a je to zcela zbytečná bariéra.

Re:Python flask
« Odpověď #9 kdy: 10. 01. 2019, 07:50:38 »
Citace
Imho děláš něco špatně.
Ne nedělám, pokud sis všiml mají knihovny napsané v setup.py třeba matplotlib==2.0.0. nebo matplotlib==1.0.0. Jak udržuješ tohle v globálním prostoru?

Citace
A pokud tvrdíš, že má vše dělat v jednom virtuálním prostředí, tak jeho použití nedává žádný smysl a je to zcela zbytečná bariéra.
Ne není, protože má aspoň ten bordel izolovanej od globálního prostoru.

Spíš odpověz na jeho původní dotaz, ale ten už asi autora ani nezajímá, natož abys ty znal odpověď.

BTW Dělám v Pythonu 3. Možná raději zůstaň u té verze 1.

uetoyo-nereg

Re:Python flask
« Odpověď #10 kdy: 10. 01. 2019, 08:20:06 »
Ne, to se mi vážně nikdy nestalo (a Python používám od časů, kdy se přecházelo z Pythonu 1 na Python 2). Knihovny instaluji standardně přes pip, udržuji je aktuální. Imho děláš něco špatně.

Ani se nechci ptát jak to přemisťuješ na jinej stroj než na svůj. IMHO děláš to naprosto špatně. Navíc nevím co tu meleš o začátečnících, žádný tady není, ten kluk spouští flask. Ani sem si nevšiml, že by někdo měl problém s virtualenvem, je to na pár kliků a zvládá to kdejaký začátečník, pokud mu to ovšem někdo řekne.