ottogal: Python unter Windows

Hallo in die Runde,

ich will mich endlich mal mit Python beschäftigen, habe aber null Erfahrung mit Linux (was, wie ich wohl weiß, mein größtes Manko ist).
Jedenfalls habe ich unter Windows 11 mal anaconda installiert und ein ipython-Profil erzeugt. Unter .ipython\profile_default finden sich die Konfigurationsdateien ipython_config.py und ipython_kernel_config.py. Darin finden sich eine Menge auskommentierter Zeilen wie
# c.InteractiveShellApp.matplotlib = None.
Wenn ich da die Kommentierung beseitige, bekomme ich die Warnung "c" is not defined.
Offenbar wird eine Datei vermisst, in der diese Variable definiert wird. Was ist mir entgangen?

Viele Grüße
ottogal

  1. # c.InteractiveShellApp.matplotlib = None.
    Wenn ich da die Kommentierung beseitige, bekomme ich die Warnung "c" is not defined.
    Offenbar wird eine Datei vermisst, in der diese Variable definiert wird. Was ist mir entgangen?

    In derselben Datei sollte vorher die Zeile c = get_config() oder c = Config() erscheinen. Falls nicht, hinzufügen und die Anleitung zur Option InteractiveShellApp.matplotlib sowie zur Konfiguration im Allgemeinen lesen.

    1. Danke, Mir.

      In derselben Datei sollte vorher die Zeile c = get_config() oder c = Config() erscheinen.

      Da bekomme ich die Warnung, dass get_config bzw. Config nicht definiert sei.

      Übrigens ist das voransetzen der Zeile c = get_config() in der Doku zu einer älteren IPython-Version erwähnt - nicht mehr jedoch bei der aktuellen (7.31.1).

      Konfiguration im Allgemeinen

      Darin ist die Rede vom "configuration object c which exist in your configuration file" - aber es steht nicht da, in welchem file.
      (Ich finde es weder in ipython_kernel_config.py noch in ipython_config.py.)

      1. Übrigens ist das voransetzen der Zeile c = get_config() in der Doku zu einer älteren IPython-Version erwähnt - nicht mehr jedoch bei der aktuellen (7.31.1).

        Die aktuelle IPython-Dokumentation scheint 8.7.0 zu sein, siehe https://ipython.readthedocs.io/en/stable/index.html

        Den Anaconda-Kram konnte ich jetzt wohl mangels Windows > 7 nicht installieren. Ich blicke da auch nicht wirklich durch, wozu das alles gut sein soll, Anaconda, ipython, jupyter und so weiter. Ich benutze nur python als solches (und einen aufgebohrten Editor zum Schreiben der Programme natürlich, aber der hat ja nichts mit Python zu tun).

        Nichtsdestotrotz habe ich stattdessen:

        1. Von https://www.python.org/downloads/ eine unter Windows 7 noch funktionierende Python-Version runtergeladen (du möchtest stattdessen sicher die aktuelle).

        2. In der Windows-Eingabeaufforderung cmd den Pfad zu python und der Python-Paketverwaltung pip an %path% angehängt. Das ist mir bei der Python-Installation vielleicht entwischt, ich hätte erwartet, dass das automatisch passiert. Python wurde unter C:\Users\mir\AppData\Local\Programs\Python\Python38 gelandet, pip dort in einem Unterverzeichnis namens Scripts. Beide Pfade entsprechend an %path% angehängt.

        3. pip3 install jupyter eingetippt.

        4. ipython profile create eingetippt.

        5. Unter C:\Users\mir\.ipython\profile_default die beiden besagten Konfigurationsdateien gefunden, mitsamt c = get_config() #noqa in der ersten Zeile und # c.InteractiveShellApp.matplotlib = None in ipython_config.py.

        Rufe ich ipython auf, meldet es sich mit:

        Python 3.8.10 (tags/v3.8.10:3d8993a, May  3 2021, 11:48:03) [MSC v.1928 64bit (AMD64)]
        Type 'copyright', 'credits' or 'license' for more information
        IPython 8.7.0 -- An enhanced Interactive Python. Type '?' for help.
        

        Rufe ich jupyter notebook auf, geht der Browser auf und es meldet sich auf der Befehlszeile mit:

        [I 15:18:15.335 NotebookApp] Serving notebooks from local directory: C:\Users\mir\.ipython\profile_default
        [I 15:18:15.335 NotebookApp] Jupyter Notebook 6.5.2 is running at:
        [I 15:18:15.335 NotebookApp] http://localhost:8888/?token=c9c85378c
        

        Vielleicht hilft das ein wenig weiter.

        1. Nochmal danke für die Ratschläge.
          Durch Angabe des Pfades in Form der Zuweisung
          c.NotebookApp.notebook_dir = 'Users/ich/mein/pfad/hier'
          in der Konfigurationsdatei jupyter_notebook_config.pystartet notebook mit dem richtigen Verzeichnis, auch ohne die %PATH%-Variable anzupassen.
          Das funktioniert, obwohl VSCode die Warnung ausgibt, das Object 'c' sei nicht definiert. Es bleibt mir ein Rätsel, wo diese Definition steckt.
          (Wie gesagt: c = get_config()findet sich bei mir in keiner der Konfigurationsdateien.)

          1. Hallo ottogal,

            vielleicht ist das kein Problem von Python, sondern vom Python-Linter in VSCode. JavaScript Linter wie JSLint oder ESLint maulen auch gern mal, dass Variablen wie "window" oder "console" undefiniert seien, und man muss ihnen mit speziellen Deklarationskommentaren beibringen, dass das vordefinierte Globals sind.

            Rolf

            --
            sumpsi - posui - obstruxi
            1. Hallo Rolf,

              und man muss ihnen mit speziellen Deklarationskommentaren beibringen, dass das vordefinierte Globals sind.

              Wie sähe denn ein solcher Kommentar aus?

              1. Hallo ottogal,

                ich habe zwar Schuppen, bin aber keine Schlange.

                Ich spreche kein Pythonesisch und müsste das selbst googeln.

                Rolf

                --
                sumpsi - posui - obstruxi
                1. Jedenfalls danke, Rolf, für den Hinweis; das würde es erklären.