<story><title>Pypi.org is running a survey on the state of Python packaging</title><url>https://pypi.org/</url></story><parent_chain><item><author>IceHegel</author><text>If I see some JS, Go, or Rust code online I know I can probably get it running on my machine in less than 5 min. Most of the time, it&amp;#x27;s a ‘git clone’ and a &amp;#x27;yarn&amp;#x27; | &amp;#x27;go install&amp;#x27; | &amp;#x27;cargo run&amp;#x27;, and it just works.&lt;p&gt;With python, it feels like half the time I don&amp;#x27;t even have the right version of python installed, or it’s somehow not on the right path. And once I actually get to installing dependencies, there are often very opaque errors. (The last 2 years on M1 were really rough)&lt;p&gt;Setting up Pytorch or Tensorflow + CUDA is a nightmare I&amp;#x27;ve experienced many times.&lt;p&gt;Having so many ways to manage packages is especially harmful for python because many of those writing python are not professional software engineers, but academics and researchers. If they write something that needs, for example,  CUDA 10.2, Python 3.6, and a bunch of C audio drivers - good luck getting that code to work in less than a week. They aren’t writing install scripts, or testing their code on different platforms, and the python ecosystem makes the whole process worse by providing 15 ways of doing basically the same thing.&lt;p&gt;My proposal:&lt;p&gt;- Make poetry part of pip&lt;p&gt;- Make local installation the default (must pass -g for global)&lt;p&gt;- Provide official first party tooling for starting a new package&lt;p&gt;- Provide official first party tooling for migrating old dependency setups to the new standard&lt;p&gt;edit: fmt</text></item></parent_chain><comment><author>kapitanjakc</author><text>What you feel with python is what I feel with JS&lt;p&gt;managing npm and package.json which has dependency issues.&lt;p&gt;With python it always has been
pip install package and we are done.&lt;p&gt;Although I do share your pain with versioning. I once spent a week debugging an issue only to find out that there&amp;#x27;s a fixed version available.</text></comment>
<story><title>Pypi.org is running a survey on the state of Python packaging</title><url>https://pypi.org/</url></story><parent_chain><item><author>IceHegel</author><text>If I see some JS, Go, or Rust code online I know I can probably get it running on my machine in less than 5 min. Most of the time, it&amp;#x27;s a ‘git clone’ and a &amp;#x27;yarn&amp;#x27; | &amp;#x27;go install&amp;#x27; | &amp;#x27;cargo run&amp;#x27;, and it just works.&lt;p&gt;With python, it feels like half the time I don&amp;#x27;t even have the right version of python installed, or it’s somehow not on the right path. And once I actually get to installing dependencies, there are often very opaque errors. (The last 2 years on M1 were really rough)&lt;p&gt;Setting up Pytorch or Tensorflow + CUDA is a nightmare I&amp;#x27;ve experienced many times.&lt;p&gt;Having so many ways to manage packages is especially harmful for python because many of those writing python are not professional software engineers, but academics and researchers. If they write something that needs, for example,  CUDA 10.2, Python 3.6, and a bunch of C audio drivers - good luck getting that code to work in less than a week. They aren’t writing install scripts, or testing their code on different platforms, and the python ecosystem makes the whole process worse by providing 15 ways of doing basically the same thing.&lt;p&gt;My proposal:&lt;p&gt;- Make poetry part of pip&lt;p&gt;- Make local installation the default (must pass -g for global)&lt;p&gt;- Provide official first party tooling for starting a new package&lt;p&gt;- Provide official first party tooling for migrating old dependency setups to the new standard&lt;p&gt;edit: fmt</text></item></parent_chain><comment><author>smeagull</author><text>I think some of the pain has been Apple&amp;#x27;s fault. Requiring conda for some official packages means you always have two competing ecosystems on one machine - which is just asking for pain.</text></comment>