• silmaril
    link
    fedilink
    arrow-up
    1
    ·
    8 months ago

    And while we’re at it: How does LabPlot decide which python version to use?

    On my Linux system, there is no python and python3 points to Python 3.10.12.

    LabPlot uses Python 3.11.9 and Python 3.12.2 is also installed.

    Which mechanism is used by LabPlot to find the Python version to use? And (how) can I tweak it to make it use 3.12?

    • LabPlot@floss.socialOP
      link
      fedilink
      arrow-up
      2
      ·
      7 months ago

      @silmaril it’s decided at build/compile time. LabPlot is using Cantor internally and when Cantor is being built, the shared libraries of Python that are found in the labrary path are used and linked to. This basically fixes the version of Python used in labplot/cantor.

      • silmaril
        link
        fedilink
        arrow-up
        1
        ·
        7 months ago

        Does this mean that as a user of the binary build, I have to install the correct Python version to be used by LabPlot / Cantor on my machine? And the current version will need Python 3.11.x and won’t work if Python 3.12.x is the only version installed?

        How can I determine the required Python version from LabPlot in case it’s not already installed?

        • LabPlot@floss.socialOP
          link
          fedilink
          arrow-up
          2
          ·
          7 months ago

          @silmaril this is correct at the moment. Clearly, this not what people want to have usually and we need to change this.

          To determine the required version, you can check the dependencies of executable ‘cantor_pyrhonserver’ on Linux either in your package manager or with ldd. For windows we compile and ship everything and document the required version of python in our FAQ.

          • silmaril
            link
            fedilink
            arrow-up
            1
            ·
            7 months ago

            Would it be possible to display the Python version and/or it’s executable path in the CAS configuration dialog?

            That’s where I would look for this information and it wouldn’t leave any potential for documentation not being up to date.

            The FAQ currently states:

            On Linux distributions it usually means LabPlot only works with the system version of Python.

            What is the “system version”?

            On my system python3 --version returns Python 3.10.12, but print(sys.version) in LabPlot returns 3.11.9 (main, Nov 10 2011, 15:00:00) [GCC 13.2.0]

            The information about Python versions on Windows seems to be correct, but I would recommend to mention the LabPlot version we are talking about in the FAQ, since this will probably change in future versions.

            • LabPlot@floss.socialOP
              link
              fedilink
              arrow-up
              1
              ·
              7 months ago

              @silmaril “system version” is the version that was used by your system/distribution to link cantor against. We’ll re-phrase this part to make it more clear until we have a better and more flexible solution in place.

              Yes, showing the version should be possible in the settings dialog. We added this point to our TODO-list.

              • silmaril
                link
                fedilink
                arrow-up
                1
                ·
                7 months ago

                Great to hear!

                I’d phrase this differently: The “system version” is the version that was used by the build system.

                Most users don’t build the application themselves, so this is some system they have zero knowledge about, which means this information is not helpful at all.

                I understood “your system” as “the system I am using to run this software”.

                I know this might be hard for developers sometimes, but please try to phrase all documentation (except chapters about actual development, builds etc.) from the user’s point of view. Build systems are no part of a typical user’s environment ;-)