Ipython: Farbige Eingabeaufforderung für embed()

Erstellt am 4. Dez. 2018  ·  10Kommentare  ·  Quelle: ipython/ipython

import IPython; IPython.embed() hat keine Farben für mich. https://github.com/ipython/ipython/issues/9450 ist verwandt, aber alt.

IPython 7.1.1
Python 3.6.6
Ubuntu 18.04

Hilfreichster Kommentar

Für jeden, der darüber stolpert, konnte ich es einfach so beheben:

IPython.embed(colors="neutral")

Alle 10 Kommentare

Hier gilt das gleiche.

iPython 7.1.1
Python 3.7.0,
Mac OS X 10.14

Auch hier.

IPython 7.2.0
Python 3.6.6
RHEL 7.4 / Mac OS 10.14

Es scheint, dass dieses Problem von Nr. 11265 stammt.

https://github.com/ipython/ipython/blob/0acd580fce7192044a6f846dd09d31d498018347/IPython/terminal/embed.py#L369 -L371

Warum weist die Standardeinstellung jetzt implizit Farben zu 'NoColor' zu?

Für eine schmutzige Lösung setze ich

IPython.embed(using=False)

was offensichtlich Code missbraucht und IPython.core.async_helpers._AsyncIORunner anstelle von IPython.core.async_helpers._pseudo_sync_runner . Für meinen speziellen Fall bin ich mir nicht sicher, welche unbeabsichtigten Nebenwirkungen das haben kann.

Wir haben auch dieses Problem, das uns daran hindert, von 5.x zu aktualisieren ... Wir würden uns sehr über eine Lösung dieses Problems freuen.

Ja, das ist ein seltsames Verhalten. In meinem Fall wird die gesamte Konfiguration ohne die Lösung von @topherocity überschrieben

Scheint immer noch ein Thema zu sein.

Immer noch ein Problem unter Windows und Linux. Übrigens können Sie %colors linux oder %colors lightbg bevor dies behoben ist.

Immer noch ein Problem unter Windows und Linux. Übrigens können Sie %colors linux oder %colors lightbg bevor dies behoben ist.

@Arnie97 Könnten Sie das %colors linux " meinen.

Geben Sie '%colors linux' in das eingebettete Terminal ein und drücken Sie die Eingabetaste.

Für jeden, der darüber stolpert, konnte ich es einfach so beheben:

IPython.embed(colors="neutral")

Danke @banool!

Ich hoffe, dies kann auch anderen helfen, aber hier ist die Liste der Standardfarben. Dies wird der Ausnahme entnommen, die ausgelöst wird, wenn Sie versuchen, ein nicht unterstütztes Farbmerkmal zu verwenden.

The 'colors' trait of an InteractiveShellEmbed instance must be any of ['Neutral', 'NoColor', 'LightBG', 'Linux'], but a value of True <class 'bool'> was specified

Ein weiteres Beispiel für die Verwendung des "Linux" Farbmerkmals. Ich bekomme ein schönes, glänzendes Terminal mit Linux-Farben.

$ python -c 'import IPython; IPython.embed(colors="Linux")'
Python 3.7.4 (default, Aug 13 2019, 15:17:50) 
Type 'copyright', 'credits' or 'license' for more information
IPython 7.8.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]:    
War diese Seite hilfreich?
0 / 5 - 0 Bewertungen