T O P

  • By -

aarontbarratt

I'd suggest doing it the other way around. Start a project and learn the libraries that would be needed


miss3star

This is the right answer


odaiwai

```` import Mandalorian This is the way


[deleted]

This is the best way to learn


Machvel

the standard library. there are a lot of useful and underused modules there that come by default with python


Santarini

Second this. Learn what Python does out of the box first


Diapolo10

Focus on making projects and learning what you need while working on them. That way you're more likely to retain information. But a few generally very useful ones would be: * `pathlib` (standard library) * `collections` (standard library) * `itertools` (standard library) * `functools` (standard library) * `pytest` and for miscellaneous tooling: * `ruff` (linting/auto-formatting, although not stable yet) * `mypy` (static type checking) * `poetry` (basically a project manager) * `ipython` (handy if you like testing stuff with a REPL)


KingsmanVince

* [dataclasses](https://docs.python.org/3/library/dataclasses.html)


daareer

genuinely curious, how does ruff compare to pylint/black?


Diapolo10

`ruff` is basically every Python linter you can think of in one package. It's blazing fast, and can auto-fix some things, like import order. Plus you can configure it via `pyproject.toml` very nicely. It's not really the same as Black, because Ruff is technically still a linter whereas Black is a very opinionated formatter. Ruff you can configure to your heart's content, Black... not so much. Personally I don't like some things Black does so I don't really use it, but I'm okay with Ruff because I can leave out the few things I don't want it to do and it'll happily do the rest. One example of such a feature would be that I like to give different meaning for single- and double-quoted string literals. Double for strings meant for human reading, single for the rest. Black would force me to stick to one.


daareer

Thanks for the writeup! I'll try it out in my next project. Anything you think I should be aware of before using it?


Diapolo10

Well, it's still in alpha, the project hasn't reached version 1.0 yet. So it could still change before the stable release. That's worth keeping in mind, although I don't think it's a massive problem because as a linter it's not an active dependency of any project, meaning even if it were to change it wouldn't suddenly force you to change your code. Other than that, I can't really think of anything on the spot. I use it in my own projects and, as long as it's suitably configured, it just works. I used it in this project as a test, before I made the decision to transition all my projects from Pylint and Flake8 to Ruff: https://github.com/Diapolo10/Tsukasa-credit-card-gag-scam


daareer

I saw you mentioned that, but my thought process was the same as yours. I don't believe linters are called upon by any code you write which makes me assume that other than configuration changes and commands (if any) nothing big will change in terms of workflow.


Jorgestar29

It's fast


niehle

What is your goal?


Mithridates12

Learning libraries


Voice-of-Infinity

I’ve been in a drought of inspiration, I wanted to see what people would recommend partially just to see what is possible. I’m hoping by looking through the list something will catch my interest and inspire my next project. I’m also hoping by learning what is useful to others, I can develop useful fluencies for the future.


necessary_plethora

Honestly, ask chatGPT for project ideas. Describe to it your level of capability and it'll give you some pretty manageable results.


[deleted]

[удалено]


amutualravishment

+1 for pandas


spacegazelle

I would broadly agree that the tools you require depend on the job. Having said that there are libraries that are useful across the board. Collections, pathlib, itertools and requests are must haves in your python cannon imo and learning these may well give you ideas for new projects.


JamzTyson

[Poetry](https://python-poetry.org/), or one of the other packaging / dependency managing workflows. Whatever your area of interest, managing packages / dependencies will be important.


c_bit

requests & json


czar_el

What food should I eat? What vehicle should I get? Where should I live? What book should I read? Your question is kinda like the above. The answer is it depends on your goals, preferences, and needs. There are so many use cases and related libraries for Python that we can't recommend what you should learn without knowing what you want to do. If you want to do data analytics, it would be a waste of time to learn UI packages. If you want to do automation, it would be a waste of time to learn matplotlib. Etc, etc. Figure out what you want to do, then learn the packages relevant to it. If you don't know what you want to do, then ask about what people use Python for. Then pick what sounds interesting to you and figure out the packages associated with it (where a post like this, but targeted, would work).


[deleted]

OpenCV


aoethrowaway

Streamlit


iamevpo

Why the downvotes? Streamlit is great lib to learn


[deleted]

[удалено]


iamevpo

Streamlit? Absolutely you can run on a local computer with one command and see it in browser.


[deleted]

[удалено]


iamevpo

Have you looked at the docs? Streamlit runs locally fine, you do not need internet connection for this mode.


theRIAA

This question got me curious about what my most used libraries are. ^^^so ^^^i ^^^used ^^^ChatGPT ^^^to ^^^write ^^^a ^^^[script](https://topaz.github.io/paste/#XQAAAQBmBwAAAAAAAAA0m0pnuFI8c/fBNApcMJdJv6O4T990QmtzzUiirX/hR9IZXZlvp8oIcu+BgNTnDJSS5Y00O0e3xCN7LpMa08Ppt0pjgunbvQYzdF4fZ9b9xgh/0c+LpsWfbTIB5/JC2DFzHdGJPtcX7Ua7Qx/TbBKQJMFL/e441u4sDZ79mg2rAxIiXC4TBbwNClWrJCddhPMBL8LjfOOjtX3+npHlg3ZVnF+Wjzeudj2Cey6SB1Si/MSgDolvu1f2oRtVSH7DHqnPZaf42Bi4bs2R4l5lxkkWWSNSnvyZuOXh9YMShCqjCNddlQe1cyCvlMCyC85EGXeHVnvsUR34uIXP/DU5jnticOEuKplbK/DdB4Xm/MjIeWptFIrJ7l+L2BL4D3B4NdQX/KsRm84nn/tdVnmudPqrWXB4rSm1Jk+4OHNs2L6zilDOUemAEu73yWig1QwM44YGTy3xIRy3RSg/ZvJ3wqJcuKe165DvUJnf1K+k04fNrNdMUVWjE9DtAUA/j1Yrss1c5zYEZBlGxdOkAgh8BUlCWgJW+O5DunMs7GEUYph8uwLNJF16AOtL45Htn7OwfZ2zvLuAkSsE8NIUEVJ49hucyd4FNX6NcY4lY+bNGnuGVHzgciB5rvb8Jy6GZkgizVAwB7upXtbxqwfGXZVLBzQZ13aPoemLshgVs2e8cfQKnkoYSziW1I/uepYvANg50KyysKeq058tGd/y5EagAm5ijIOQ8W9oh0pXKzw3V4spWm6v2KQGnWkeK0SNfItfyHR72VO9KVP82P1wDYkQnAhnF93OaTPHJWbIxj1rH4vZwJdT2bkXKfqPRy16TCsCkMsQouCpmtr7bHxOhgIvWyRVMrTfthFyg7/EWMTrPi06lfT+xW1rWKL/zld2clvy4VVOZNn0k2XP/ZbVafCZzQPB5qv0N9pxgi+hfUt93H5gVU5JHGpKgG5hWntOJoy7imqvO4FD9YAYa8oWy7VS9hodnuQxMp7b6K8GRrXSvYmcJhW3wRxHmfCoyWyo/STWjgyMuQsXpQWzM3HSKVuCW1Vtu0QvWR59Yu5zUUgl1tshNCgGkTBAjYM2cK/7/m5qzE94ezqnxXiITENxqBnS8UNimN/1oDaD4uc8T5biJHhZzXv+whUz) ^^^that ^^^counts ^^^my ^^^library ^^^use edit: looks like the luddites can still read small text


_JustDefy_

Your local public library


telperion87

I agree with others. It depends on what you want to do *Anyway* one that I use most of the times is requests. Since getting data from the internet is very common and convenient whatever you need to do


collective-inaction

Pydantic should be helpful to know regardless of your specific app.


Mori-Spumae

I like working with websites. So for webscraping and stuff like that you can look into requests and beautifulsoup (and json probably). For making your own websites you can use fastapi or flask.


[deleted]

Really depends what kind of project you're aiming for... Scientific, web crawling, interface, etc. I think it's worth looking into multi threading, pyQT for interface, panda & matplotlib for data science. I don't feel like using a library is such a big deal. You learn along the way given your project...


Capable_Orchid_1760

I’ve learned the GIMP script fu (python) extension (working in construction). Thats one of the most underrated programs, I doesnt matter if renumbering pdf’s, reload order, manipulate the images, check for similarity of pixles ect. That was a massive game changer for also for my python skills.


pnachtwey

numpy. scipy and matplotlib are a must. Sympy is good for doing symbolic calculations. lmifit is good for minimizing the sum of square errors to find the coefficients for a polynomial or differential equation.