windows - Hvilket konsol bibliotek skal du bruge i Python?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har meget enkel opgave at opnå i python. Behov for at tegne tekstdata (Unicode) som rækker på skærmen, navigerbar og bruger kan vælge/fravælge række. Dette skal dog arbejde på hovedløse Linux, såvel som Windows eller Mac OS. Kurser har ikke Windows-port. Konsolmodul fra Fredrik Lundh fungerer kun på Windows. Jeg kunne bruge begge biblioteker og kontrollere OS, men det tager dobbelt arbejde at lave/opretholde samme funktionalitet på 2 forskellige biblioteker.


Jeg søger simpelt multiplatform-konsolbibliotek for at tegne det jeg har beskrevet.

Bedste reference


På et lavere niveau skal du bruge forfalskninger, og der er flere valgmuligheder for det underliggende forbudsbibliotek på Windows, som måske eller måske ikke virker. Du vil ikke have nogen reelle problemer med forbandelser på UNIX, så hvis jeg var dig, ville jeg få det til at fungere på Windows først, og hvis en bestemt funktion ikke fungerer, skal du programmere dem. UNIX-porten bør være smertefri.


PDCurses til Windows er tilgængelig som en DLL eller kildekode, og det er muligt at interface direkte til enhver DLL ved hjælp af ctypes-modulet. Der er et værktøj, som automatisk kan generere en ctypes wrapper til dig kaldet ctypesgen.py http://wavetossed.blogspot.com/2011/07/asynchronous-gnu-readline.html Jeg er ikke sikker på, om det virker for en Windows DLL ganske så automatisk, men det virker fra header-filer, så det er et forsøg værd. [1]


For mere baggrund på ctypes kan du kigge på nogle af spørgsmålene her som Scheduling-funktionskald i et Python-forbud UI

Andre referencer 1


Jeg bruger urwid. Dokumentets dokumentation er dårlig, men på den anden side er dens kildebase meget kompakt. Den understøtter Unicode godt og fungerer fint på Cygwin. Det virker ikke som arbejde i native CMD.exe, men det er værd at undersøge nærmere hvordan Forfalskningsafhængigheden er kun valgfri. [3]


Eksempler fra projektets websted:


http://urwid.org/\_images/graph2.png[4]


http://urwid.org/\_images/highcolors1.png[5]

Andre referencer 2


Jeg har for nylig haft et lignende problem for en pakke, jeg sad sammen (https://github.com/peterbrittain/asciimatics). Jeg var ikke meget tilfreds med de løsninger, der krævede at du installerede (eller værre) oprette separate binære eksekverbare filer som PDCurses eller cygwin, så jeg oprettede en samlet API, der giver konsolfarver, markørpositionering og tastaturindgang til Windows og UNIX-platforme. [6]


Der er et galleri af eksempler på applikationer her. I nyere versioner har jeg også tilføjet et sæt widgetobjekter, så du kan oprette TUI'er som denne: [7]


Indtast billedbeskrivelse her [8]


Dette er nu live og er blevet testet på CentOS 6/7 og Windows 7/8. Du kan installere det fra PYPI ved hjælp af pip og derefter bruge skærmklassen til at gøre præcis, hvad du vil. Hvis ikke, bedes du sende en enhedsanmodning på GitHub, og jeg kan se, hvad jeg kan gøre.