How to Use Poetry in Python to avoid Dependency Hell

แชร์
ฝัง
  • เผยแพร่เมื่อ 3 ต.ค. 2024
  • 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/bl...
    Python Poetry Website
    python-poetry....
    📒 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.co...

ความคิดเห็น • 41

  • @jonron3805
    @jonron3805 10 หลายเดือนก่อน +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  10 หลายเดือนก่อน

      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.

  • @yashashav_dk3766
    @yashashav_dk3766 2 หลายเดือนก่อน

    The ADAM GORDON BELL from the CoRecursive podcast!!! DAMNNNN..
    Love your podcasts Adam. Thanks for giving back to the community! Instant sub!

  • @jdavid82
    @jdavid82 8 หลายเดือนก่อน +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

  • @kristiannn
    @kristiannn 8 หลายเดือนก่อน +1

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

    • @EarthlyTech
      @EarthlyTech  7 หลายเดือนก่อน

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

  • @semeglohlokoh8197
    @semeglohlokoh8197 27 วันที่ผ่านมา

    Thank you for explaining !

  • @AghilSoi
    @AghilSoi 3 หลายเดือนก่อน

    'poetry' is not recognized as an internal or external command,
    operable program or batch file. facing this error

  • @alexv2401
    @alexv2401 7 หลายเดือนก่อน

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

    • @EarthlyTech
      @EarthlyTech  7 หลายเดือนก่อน

      Wow, thank you

  • @jeffg4686
    @jeffg4686 5 หลายเดือนก่อน

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

  • @BryanChance
    @BryanChance 9 หลายเดือนก่อน +4

    I don't know which is worse python or nodejs

    • @thygrrr
      @thygrrr 8 หลายเดือนก่อน +2

      Node. It's not even a competition.

    • @julians.2597
      @julians.2597 6 หลายเดือนก่อน

      @@thygrrr yeah, but it's bad enough

  • @cerkal726
    @cerkal726 4 หลายเดือนก่อน

    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  3 หลายเดือนก่อน

      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.

  • @harshitmishra3318
    @harshitmishra3318 3 หลายเดือนก่อน

    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 ??

  • @JevKuznetsov
    @JevKuznetsov 6 หลายเดือนก่อน

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

    • @EarthlyTech
      @EarthlyTech  5 หลายเดือนก่อน

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

  • @eugeneL_N1E104
    @eugeneL_N1E104 7 หลายเดือนก่อน

    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)

  • @2002budokan
    @2002budokan 8 หลายเดือนก่อน

    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  8 หลายเดือนก่อน +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.

  • @hazard_111
    @hazard_111 9 หลายเดือนก่อน

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

    • @EarthlyTech
      @EarthlyTech  9 หลายเดือนก่อน

      Thanks. Pants video may come.
      I do have this interview with Pants creator:
      th-cam.com/video/mEx8NWm4830/w-d-xo.html

  • @intelligenceservices
    @intelligenceservices 4 หลายเดือนก่อน

    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.

  • @NamasenITN
    @NamasenITN 8 หลายเดือนก่อน

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

    • @EarthlyTech
      @EarthlyTech  8 หลายเดือนก่อน

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

  • @LodeNachtergaele
    @LodeNachtergaele 8 หลายเดือนก่อน

    What do you think about Pixi ?

    • @EarthlyTech
      @EarthlyTech  8 หลายเดือนก่อน +1

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

  • @OmPrasadKoirala
    @OmPrasadKoirala 3 หลายเดือนก่อน

    great job

  • @mumk
    @mumk 5 หลายเดือนก่อน

    Use Nix instead

  • @2002budokan
    @2002budokan 8 หลายเดือนก่อน

    cargo4python => poetry

  • @windowsrefund
    @windowsrefund 4 หลายเดือนก่อน

    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  4 หลายเดือนก่อน

      I grew up on windows. Some habits die hard.

  • @downloadpcgamesdirectlinkb7590
    @downloadpcgamesdirectlinkb7590 10 หลายเดือนก่อน

    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  10 หลายเดือนก่อน +1

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

  • @AghilSoi
    @AghilSoi 3 หลายเดือนก่อน

    'poetry' is not recognized as an internal or external command,
    operable program or batch file.
    help me with this error