Deutsch English Français Italiano |
<mailman.41.1716217792.2909.python-list@python.org> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!npeer.as286.net!npeer-ng0.as286.net!fu-berlin.de!uni-berlin.de!not-for-mail From: Left Right <olegsivokon@gmail.com> Newsgroups: comp.lang.python Subject: Re: venvs vs. package management Date: Mon, 20 May 2024 01:15:06 +0200 Lines: 106 Message-ID: <mailman.41.1716217792.2909.python-list@python.org> References: <fqN0O.38287$ZZU.19060@fx07.ams4> <TUI-20240515112645@ram.dialup.fu-berlin.de> <v23j1c$15nao$4@dont-email.me> <Pvs1O.8533$H1X8.1544@fx05.ams4> <20240518151913.w5qqsw67gndy57ry@hjp.at> <4VhVBk0sy7znVGB@mail.python.org> <dc837fb2-fee3-4d7c-81b1-fa70cacdc3bf@wichmann.us> <mailman.19.1716055464.2909.python-list@python.org> <hl7nhk-165.ln1@lazy.lzy> <20240519064906.iiwcjlvdt4ripfpy@hjp.at> <mailman.24.1716101350.2909.python-list@python.org> <pbcphk-ib6.ln1@lazy.lzy> <CAJQBtgkSu_iZps4MMt0vNe7G2QNKXJbnak1Fz=GbLx1inMK98A@mail.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Trace: news.uni-berlin.de yq/cstiAOO610lvYInQgoA5yCo/CWbTD4kAlE03LofpQ== Cancel-Lock: sha1:h3cW0WniHq0QlroHW5V17z9RAnc= sha256:8mjVGtK3jiQIDfK635hVDDwV5fOuMs8HzDzrGkdAn5I= Return-Path: <olegsivokon@gmail.com> X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org Authentication-Results: mail.python.org; dkim=pass reason="2048-bit key; unprotected key" header.d=gmail.com header.i=@gmail.com header.b=JZKSAtNd; dkim-adsp=pass; dkim-atps=neutral X-Spam-Status: OK 0.001 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'generated': 0.03; 'pip': 0.04; 'bunch': 0.05; "python's": 0.05; 'image.': 0.07; 'maintainers': 0.07; 'modules': 0.07; 'mysql': 0.07; 'sun,': 0.07; 'task.': 0.07; 'updates.': 0.07; 'dependencies': 0.09; 'enough.': 0.09; 'freeze': 0.09; 'indirectly': 0.09; 'linux': 0.09; 'something,': 0.09; 'sometimes,': 0.09; 'versions,': 0.09; 'import': 0.15; 'url:mailman': 0.15; '(both': 0.16; '(it': 0.16; '2024': 0.16; 'carrying': 0.16; 'cases,': 0.16; 'examples,': 0.16; 'for.': 0.16; 'functions,': 0.16; 'holzer': 0.16; 'landscape': 0.16; 'perhaps,': 0.16; 'php': 0.16; 'pytorch': 0.16; 'received :mail-ua1-x92e.google.com': 0.16; 'similar.': 0.16; 'specify': 0.16; 'subject:package': 0.16; 'tensorflow.': 0.16; 'useful.': 0.16; 'wish,': 0.16; 'wrote:': 0.16; 'problem': 0.16; 'python': 0.16; 'pull': 0.17; 'instead': 0.17; 'installing': 0.19; 'libraries': 0.19; 'to:addr:python-list': 0.20; 'all,': 0.20; 'i.e.': 0.22; 'version': 0.23; 'install': 0.23; '(and': 0.25; 'anything': 0.25; 'url-ip:188.166.95.178/32': 0.25; 'url- ip:188.166.95/24': 0.25; 'python,': 0.25; 'saying': 0.25; 'url:listinfo': 0.25; 'url-ip:188.166/16': 0.25; 'available,': 0.26; 'pattern': 0.26; 'practices': 0.26; 'else': 0.27; 'example,': 0.28; 'ideas': 0.28; 'packages': 0.31; 'module': 0.31; 'community': 0.31; 'url-ip:188/8': 0.31; "doesn't": 0.32; 'concept': 0.32; 'programmers': 0.32; 'python-list': 0.32; 'window': 0.32; 'message-id:@mail.gmail.com': 0.32; 'but': 0.32; 'there': 0.33; 'particular': 0.33; 'release': 0.34; 'package': 0.34; 'work.': 0.34; 'header:In-Reply-To:1': 0.34; 'received:google.com': 0.34; 'running': 0.34; 'developed': 0.35; 'from:addr:gmail.com': 0.35; 'fix': 0.36; 'people': 0.36; 'really': 0.37; "it's": 0.37; 'way': 0.38; 'means': 0.38; 'enough': 0.39; 'this,': 0.39; 'developers': 0.39; 'use': 0.39; 'shared': 0.39; 'done.': 0.40; 'processed': 0.40; 'situation': 0.40; 'support.': 0.40; 'something': 0.40; 'want': 0.40; 'popular': 0.60; 'today': 0.61; "there's": 0.61; 'generation': 0.62; 'between': 0.63; 'experience': 0.64; 'overall': 0.64; 'pack': 0.64; 'thus': 0.64; 'came': 0.65; 'independent': 0.65; 'similar': 0.65; 'bad': 0.67; 'per': 0.68; 'management': 0.68; 'decision': 0.68; 'contributes': 0.69; 'everything,': 0.69; 'times': 0.69; 'solutions': 0.70; 'depending': 0.70; 'essential': 0.70; 'care': 0.71; 'subject:. ': 0.73; 'commercial': 0.74; 'tools': 0.74; 'short,': 0.76; 'quality': 0.80; 'established': 0.80; 'encouraged': 0.81; 'more.': 0.82; 'absolutely': 0.84; 'alike': 0.84; 'became': 0.84; 'cycle.': 0.84; 'grew': 0.84; 'imports': 0.84; 'management.': 0.84; 'newest': 0.84; 'poorly': 0.84; 'influenced': 0.91; 'negatively': 0.91; 'was,': 0.91 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1716160519; x=1716765319; darn=python.org; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=QhcV3nSBD7AIRnZN5Zow3A1RaNWSPq+sDo4VSSLJOCY=; b=JZKSAtNd7mThXdPVMIEBlyc0yUPi99TLVptpdzT2KEh2D0PRU1uWKHUTl/st+EmBet hCkhWqxB6I4R8TXENp9NbPHBaOwDjiVnjboCwo4QWqYiA0aqhJS/XugT/vlQMRnOhLbu RYzK+AnAtrIfbftji/vgta7NSVJNaIZfsAS7hwv0vCwH6Y/kh2idZOijAFT/+n65AKlc A7j9/CEumh70nU2mwlTXu0IBkdg5J2xT+j2oNBxPcSh2y7Qx5TswP++y7K6KHxvO+B2Q EzoPOLDWmuVmDTRcedaUrQIAyflfeImfYsA0+KzRJXpnGcXyNqtAGojTRCX8Na7Rl3IJ ZjgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716160519; x=1716765319; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=QhcV3nSBD7AIRnZN5Zow3A1RaNWSPq+sDo4VSSLJOCY=; b=ZROr6B43CWEI3UwYAPFxAqaAqtdBfqUiwiIVjJ2MJMscrODGbfw0G/SroZUeqC0vdb oSdSH5XAIZsU0esHxbAmRPKHhWbY3/sEY0Bm9J1emlYPuZh5O73gtulEvsBthb3cvFw7 TxXKDl/+QAQdf42mBqswvzHPDm7LkSX07lTuQjwdurf1lbGfbneqVi/GNmxBuya0ZRkg NDxNrp61df3Wf+/YLym5OyupOvjYNIzKIi5bkJZW6Q/lyM9Tdh1oWMY9hY5ZYRiQ2ez0 uV4Vr/PtCKVrG9jNUdVrZjdasFpWo6N1pWjI4F2k9WJm7Rf/V1QoaX05STBmLUqp71h9 cvQw== X-Gm-Message-State: AOJu0Yzh40faQVWHQkNwA/qcrn5X7/TkoB9vXvonrzMoRpEsSGC3u0Km iLk0gCMqqfoqclXNxrLSfqdG5YasBPQ19v8oFcjDNCZmMxgqnDn72HmG2aWlSTtah1vj2MKYTD1 UAToaq4ovfzPq/ezNYbZs+IAbdRMGLQ== X-Google-Smtp-Source: AGHT+IFaWW8G20eUTTEtX5h0xCIy7d94mEM8K7ReutYGWQL6asF6Sx+F9455iPIFvCgYp1EwIpPh4MMjnwY9M3oIvCQ= X-Received: by 2002:a05:6102:549e:b0:485:9805:1197 with SMTP id ada2fe7eead31-48598052444mr9399656137.6.1716160517792; Sun, 19 May 2024 16:15:17 -0700 (PDT) In-Reply-To: <pbcphk-ib6.ln1@lazy.lzy> X-Mailman-Approved-At: Mon, 20 May 2024 11:09:50 -0400 X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.39 Precedence: list List-Id: General discussion list for the Python programming language <python-list.python.org> List-Unsubscribe: <https://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe> List-Archive: <https://mail.python.org/pipermail/python-list/> List-Post: <mailto:python-list@python.org> List-Help: <mailto:python-list-request@python.org?subject=help> List-Subscribe: <https://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe> X-Mailman-Original-Message-ID: <CAJQBtgkSu_iZps4MMt0vNe7G2QNKXJbnak1Fz=GbLx1inMK98A@mail.gmail.com> X-Mailman-Original-References: <fqN0O.38287$ZZU.19060@fx07.ams4> <TUI-20240515112645@ram.dialup.fu-berlin.de> <v23j1c$15nao$4@dont-email.me> <Pvs1O.8533$H1X8.1544@fx05.ams4> <20240518151913.w5qqsw67gndy57ry@hjp.at> <4VhVBk0sy7znVGB@mail.python.org> <dc837fb2-fee3-4d7c-81b1-fa70cacdc3bf@wichmann.us> <mailman.19.1716055464.2909.python-list@python.org> <hl7nhk-165.ln1@lazy.lzy> <20240519064906.iiwcjlvdt4ripfpy@hjp.at> <mailman.24.1716101350.2909.python-list@python.org> <pbcphk-ib6.ln1@lazy.lzy> Bytes: 12371 There are several independent problems here: 1. Very short release cycle. This is independent of the Python venv module but is indirectly influenced by Python's own release cycle. Package maintainers don't have time for proper testing, they are encouraged to release a bunch of new (and poorly tested) versions, and they never get a break. So, when you install the latest, there will be something else broken. There's never a window to properly test anything. 2. Python made a very short-sighted decision about how imports work. Python doesn't have a concept of "application", and therefore there's no way to specify dependencies per application (and imports import anything that's available, not versioned). That's why every Python application ends up carrying its own Python, with the version of its own dependencies around. Python's venv module is just an acknowledgement of this design flaw. I.e. the proper solution would've been a concept of application and per-application dependency specification, but instead we got this thing that doesn't really work (esp. when native modules and shared libraries are considered), but it "works" often enough to be useful. 3. The Python community grew to be very similar to what PHP 4 was, where there were several "poisonous" examples, which were very popular on the Web, which popularized a way of working with MySQL databases that was very conducive to SQL injections. Python has spread very bad ideas about project management. Similar to how PHP came up with mysql_real_escape() and mysql_this_time_promise_for_real_escape() and so on functions, Python came up with bad solutions to the problems that had to be fixed by removing bad functionality (or, perhaps, education). So, for example, it's very common to use requirements.txt, which is generated by running pip freeze (both practices are bad ideas). Then PyPA came up with a bunch of bad ideas in response to problems like this, eg. pyproject.toml. In an absurd way very much mirroring the situation between makefiles and makefiles generated by autotools, today Python developers are very afraid of doing simple things when it comes to project infrastructure (it absolutely has to be a lot of configuration fed into another configuration, processed by a bunch of programs to generate even more configuration...) And most Python programmers don't really know how the essential components of all of this infrastructure work. They rely on a popular / established pattern of insane multi-step configuration generation to do simple things. And the tradition thus developed is so strong, that it became really cultish. This, of course, negatively contributes to the overall quality of Python packages and tools to work with them. Unfortunately, the landscape of Python today is very diverse. There's no universally good solution to package management because it's broken in the place where nobody is allowed to fix it. Commercial and non-commercial bodies alike rely on people with a lot of experience and knowledge of particular Python gotchas to get things done. (Hey, that's me!) And in different cases, the answer to the problem will be different. Sometimes venv is good enough. Other times you may want a container or a vm image. Yet in a different situation you may want a PyPA or conda package... and there's more. On Sun, May 19, 2024 at 4:05=E2=80=AFPM Piergiorgio Sartor via Python-list <python-list@python.org> wrote: > > On 19/05/2024 08.49, Peter J. Holzer wrote: > [...] > > That's what package management on Linux is for. Sure, it means that you > > won't have the newest version of anything and some packages not at all, > > but you don't have to care about dependencies. Or updates. > > Well, that doesn't work as well. > Distributions do not pack everything, this > also depending on licenses. > > Sometimes, or often, you need to use the > *latest* version of something, due to some ========== REMAINDER OF ARTICLE TRUNCATED ==========