Sorry Python but it is what it is.

  • theFibonacciEffect@feddit.de
    link
    fedilink
    arrow-up
    10
    arrow-down
    5
    ·
    1 年前

    Pip stores everything inside of some random txt file that doesn’t differentiate between packages and dependencies.

        • Farent@lemmy.scam-mail.me
          link
          fedilink
          arrow-up
          7
          arrow-down
          1
          ·
          1 年前

          Isn’t it called a requirements.txt because it’s used to export your project requirements (dependencies), not all packages installed in your local pip environment?

        • JakobDev@feddit.de
          link
          fedilink
          arrow-up
          8
          arrow-down
          3
          ·
          1 年前

          Yes, but this file is created by you and not pip. It’s not like package.json from npm. You don’t even need to create this file.

          • theFibonacciEffect@feddit.de
            link
            fedilink
            arrow-up
            4
            arrow-down
            2
            ·
            1 年前

            Well if the file would be created by hand, that’s very cumbersome.

            But what is sometimes done to create it automatically is using

            pip freeze > requirements. txt

            inside your virtual environment.

            You said I don’t need to create this file? How else will I distribute my environment so that it can be easily used? There are a lot of other standard, like setup.py etc, so it’s only one possibility. But the fact that there are multiple competing standard shows that how pip handles this is kinds bad.

            • JakobDev@feddit.de
              link
              fedilink
              English
              arrow-up
              2
              ·
              1 年前

              If you try to keep your depencies low, it’s not very cumbersome. I usually do that.

              A setup.py/pyproject.toml can replace requirements. txt, but it is for creating packages and does way more than just installing dependencies, so they are not really competing.

              For scripts which have just 1 or 2 packges as depencies it’s also usuall to just tell people to run pip install .

            • Vash63@lemmy.world
              link
              fedilink
              arrow-up
              3
              arrow-down
              1
              ·
              1 年前

              I work with python professionally and would never do that. I add my actual imports to the requirements and if I forget I do it later as the package fails CI/CD tests.

    • SSUPII@sopuli.xyz
      link
      fedilink
      arrow-up
      5
      arrow-down
      1
      ·
      1 年前

      Honestly its a simple and straightforward solution. What’s wrong with it?

      • theFibonacciEffect@feddit.de
        link
        fedilink
        arrow-up
        2
        arrow-down
        1
        ·
        edit-2
        1 年前

        If newer versions are released and dependencies change you would still install the old dependencies. And if the dependencies are not stored you can’t reproduce the exact same environment.