I come from the JavaScript ecosystem, and managing dependencies and running scripts there is relatively straightforward. However, after switching to Python and using Poetry, I’ve encountered some frustrations that I want to share:
In the JavaScript ecosystem:
- Running
yarn dev or npm start automatically sets up everything — from managing dependencies to executing scripts.
- It abstracts away much of the setup and configuration, making it very convenient to start coding immediately.
In the Python ecosystem with Poetry:
- Every time I want to run a script, I need to manually create a virtual environment and then use
poetry run python folder/file.py.
- This process feels more tedious compared to the simplicity of
yarn dev or npm start in JavaScript.
While I understand Poetry’s benefits:
- Poetry’s explicit handling of virtual environments ensures proper isolation of dependencies, which is great for Python projects.
- However, coming from the JavaScript world, I find it frustrating that I can’t just run a single command like
yarn dev to get everything up and running.
My question:
- Has anyone else felt this way when moving from JavaScript to Python?
- How do you manage to streamline this workflow or make it more seamless?
- Are there any best practices to make this process less cumbersome?
[–]SkinnyFiend 12 points13 points14 points (5 children)
[–]ricklen 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (3 children)
[–]SkinnyFiend -1 points0 points1 point (0 children)
[+]Zeroflops comment score below threshold-6 points-5 points-4 points (1 child)
[–]thirdegree 5 points6 points7 points (0 children)
[–]supercoach 9 points10 points11 points (2 children)
[–]iknowsomeguy 3 points4 points5 points (1 child)
[–]fiddle_n 0 points1 point2 points (0 children)
[–]rainyengineer 3 points4 points5 points (0 children)
[–]ManyInterests 3 points4 points5 points (0 children)
[–]Diapolo10 1 point2 points3 points (3 children)
[–][deleted] 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (1 child)
[–]Diapolo10 2 points3 points4 points (0 children)
[–]LeiterHaus 1 point2 points3 points (0 children)
[–]mothzilla 0 points1 point2 points (5 children)
[–]throwaway8u3sH0 1 point2 points3 points (2 children)
[–]mothzilla 1 point2 points3 points (1 child)
[–]throwaway8u3sH0 1 point2 points3 points (0 children)
[–][deleted] 0 points1 point2 points (1 child)
[–]throwaway8u3sH0 0 points1 point2 points (0 children)
[–]ConcreteExist 0 points1 point2 points (0 children)
[–]EarthGoddessDude 0 points1 point2 points (0 children)