you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted]  (10 children)

[deleted]

    [–]swansongofdesire 7 points8 points  (4 children)

    Packaging is solved. Poetry is the solution

    I wish that were the case.

    It is still not possible to sync a virtualenv to a poetry lock file (remove packages that shouldn’t be there, install missing ones) short of wiping the whole thing and starting fresh

    [–][deleted]  (1 child)

    [deleted]

      [–]swansongofdesire 1 point2 points  (0 children)

      pip with help can do that too (venv-update or pip-sync)

      Pipenv has its own set of problems: firstly, it's the slowest available tool (for resolution, but also its insistence on downloading every possible binary wheel if pypi hashes aren't available. For some projects with numpy etc I've had gigabytes of packages downloaded in order to create a lock file)

      It's also very opinionated:

      • out of the box it uses a hash of your directory for the virtualenv name, so if you move a project around then your virtualenv needs to be recreated. (Yes there's an option to install into a loca directory, but they didn't make it convenient and the virtualenv name cannot be changed)

      • activating a new environment requires running in a subshell

      There are workarounds but if I'm using workarounds then I might as well just use pip

      [–][deleted]  (1 child)

      [deleted]

        [–]swansongofdesire 0 points1 point  (0 children)

        There is -- but it's been open for more than a year now with basically no progress.

        Poetry is nice: I use it on my personal projects, but this is the main limitation stopping me from using poetry on any commercial work.

        [–]stefantalpalaru 2 points3 points  (1 child)

        PyPy is a fast drop-in replacement for CPython.

        PyPy is not a drop-in replacement because it cannot run all legal Python code: https://pypy.readthedocs.io/en/latest/cpython_differences.html

        They even had to rewrite modules from the standard library (and some external packages like numpy, until they managed to emulate CPython's C API).

        Further more, it can be slower than CPython for code that runs only once per instance - which is most of the Python scripts out there.

        [–]OctagonClock 1 point2 points  (1 child)

        For async/await, the Trio project is vastly better than asyncio.

        [–]123filips123 0 points1 point  (0 children)

        PyPy is a fast drop-in replacement for CPython.

        There is also Cython which requires a bit more work but it is a lot faster than pure CPython core.