How to Use Poetry in Python to avoid Dependency Hell

Sdílet
Vložit
  • čas přidán 16. 10. 2023
  • Earthly ➤ earthly.dev
    Today, let's discuss Python dependency, virtual environments and the use of Poetry, an all-in-one tool for virtual environments, dependency management, packaging, and distribution in Python projects.
    I'll explain how Poetry helps manage dependencies, set up virtual environments, and package projects for distribution.
    I'll also mention the limitations of Poetry when dealing with non-Python dependencies or C-based dependencies, recommending the use of containers in such cases.
    ➡️ Earthly: earthly.dev/
    📒 Links 📒
    Article version of this tutorial:
    earthly.dev/blog/python-poetry/
    Python Poetry Website
    python-poetry.org/
    📒 About Earthly 📒
    Earthly is a command line tool that simplifies build processes, especially for complex projects involving multiple programming languages. It helps manage communication between different languages, making builds easier to manage. If you want to streamline your build processes and work with multiple languages, Earthly can help.
    Website: earthly.dev/
    Follow us on Twitter: / earthlytech
    Subscribe: www.youtube.com/@EarthlyTech?...
  • Věda a technologie

Komentáře • 37

  • @jonron3805
    @jonron3805 Před 7 měsíci +5

    The explanation of Poetry and comparing it with other virtual environments has been like none I have seen before. Its a wonderful explanation. The only thing I would have liked to see in addition to what you showed was an EXAMPLE where there is a dependency conflict in some modules and how introducing poetry will resolve the issue.

    • @EarthlyTech
      @EarthlyTech  Před 7 měsíci

      Hey, Thanks for watching!
      That is good feedback. I'm not sure I'll be making another video on Poetry, but if I do I try to cover a specfic dependency conflict.

  • @jdavid82
    @jdavid82 Před 5 měsíci +1

    this video helped me with 80% of getting there, now I need to look for where to add the hello world code and how to run it

  • @jeffg4686
    @jeffg4686 Před 2 měsíci

    Nice. I like the choice of toml - aligns with Rust - my other language.

  • @eugeneL_N1E104
    @eugeneL_N1E104 Před 4 měsíci

    as to future potential topics,
    python typing looks not very clear when I write class methods for non-builtin classes. also wondering since which python3.* does this typing has really performance improvements (or "dev acceleration" as IDE use them)

  • @OmPrasadKoirala
    @OmPrasadKoirala Před 13 dny

    great job

  • @alexv2401
    @alexv2401 Před 4 měsíci

    Thank you for your content. Your contributions to the CZcams Python Hive mind do not go unnoticed.
    Sincerely,
    A passionate Pythonista

  • @harshitmishra3318
    @harshitmishra3318 Před 14 dny

    At 8:25 what he is actually tell about the git commit ???
    I didn't get that, can any one helps me to understand that ??

  • @kristiannn
    @kristiannn Před 5 měsíci +1

    this is one of the best videos on youtube about dependency management in python

    • @EarthlyTech
      @EarthlyTech  Před 4 měsíci

      Thank you so much for your kind words! I'm glad you found the video helpful.

  • @hazard_111
    @hazard_111 Před 6 měsíci

    Great video. Can you please do one on Pants build system as well?

    • @EarthlyTech
      @EarthlyTech  Před 6 měsíci

      Thanks. Pants video may come.
      I do have this interview with Pants creator:
      czcams.com/video/mEx8NWm4830/video.html

  • @NamasenITN
    @NamasenITN Před 4 měsíci

    Can I install poetry with poetry? Or will it cause an anomaly in the space time continuum?

    • @EarthlyTech
      @EarthlyTech  Před 4 měsíci

      An anomaly for sure! The universe will be replaced with another universe where Python packaging is even more complex.

  • @JevKuznetsov
    @JevKuznetsov Před 2 měsíci

    To go one step further - devcontainers are an even better solution. Build once - reproduce on any system.

    • @EarthlyTech
      @EarthlyTech  Před 2 měsíci

      Do you use the dev container support in VS Code? I find that is pretty nice.

  • @cerkal726
    @cerkal726 Před měsícem

    Explanation was nice. But I think you have missed main part of video that is how to avoid dependency hell. Like when installing two packages which use different versions of same depended package is still resulting in error. Which you explained in the earlier section of the video but didn't actually explain if it could be solved or not using peotry.

    • @EarthlyTech
      @EarthlyTech  Před 24 dny

      Yes, you are right! Poetry only solves when you use two separate venvs. Otherwise, it will attempt to find a version that is compatible with both and otherwise raise an error. At that point you need to find a singular version that works for both yourself or try otherwise adjust deps so that there is a singular version that works with your use case.

  • @2002budokan
    @2002budokan Před 5 měsíci

    1. What if I don't want to publish my package on pypi but use it on my own local machine as a single executable? For example on Windows machine as an .exe file, how can I build this file?
    2. And in this video it is not clear, how poetry breaks the diamond that you show us at the beginning of your video. What if we need two different version of the same package, for two libraries we need in our project, how poetry breaks the diamond and put two different versions of the same library in venv?

    • @EarthlyTech
      @EarthlyTech  Před 4 měsíci +2

      Poetry doesn't break the diamond problem. It lessens its scope, as all virtual envs in python do.
      within a single projects its still not possible to depend on two version of something, unless the new version is published with a different name.

  • @BryanChance
    @BryanChance Před 6 měsíci +4

    I don't know which is worse python or nodejs

    • @thygrrr
      @thygrrr Před 5 měsíci +2

      Node. It's not even a competition.

    • @julians.2597
      @julians.2597 Před 3 měsíci

      @@thygrrr yeah, but it's bad enough

  • @downloadpcgamesdirectlinkb7590

    This happens to me, it was shit I spend whole day trying to work it out I notice the problem is different dependency on different python version ugh

    • @EarthlyTech
      @EarthlyTech  Před 7 měsíci +1

      yeah, we've all been burnt by this I think

  • @intelligenceservices
    @intelligenceservices Před měsícem

    Python is supposed to be so clever terse and elegant. If it was an apartment, it would be as spotless as patrick bateman's, but they have such a pile of garbage outside you need a Shai-Hulud to get to the door. Just a little poetry there.

  • @LodeNachtergaele
    @LodeNachtergaele Před 5 měsíci

    What do you think about Pixi ?

    • @EarthlyTech
      @EarthlyTech  Před 4 měsíci +1

      I'm not familiar with it. Do you like it?

  • @mumk
    @mumk Před 2 měsíci

    Use Nix instead

  • @2002budokan
    @2002budokan Před 5 měsíci

    cargo4python => poetry

  • @windowsrefund
    @windowsrefund Před měsícem

    I LOVE this video but please make the Internet a better place and stop referring to directories as "folders". Thumbs up! Also, the term "open source" is totally lame. The proper term is "Free Software".

    • @EarthlyTech
      @EarthlyTech  Před 26 dny

      I grew up on windows. Some habits die hard.