https://www.explainxkcd.com/wiki/index.php?title=1987:_Python_Environment&feed=atom&action=history1987: Python Environment - Revision history2024-03-28T23:51:23ZRevision history for this page on the wikiMediaWiki 1.30.0https://www.explainxkcd.com/wiki/index.php?title=1987:_Python_Environment&diff=334811&oldid=prev172.71.219.3: People aren't using 2.7 just due to personal preference.2024-02-11T09:20:20Z<p>People aren't using 2.7 just due to personal preference.</p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr style="vertical-align: top;" lang="en">
<td colspan="2" style="background-color: white; color:black; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: white; color:black; text-align: center;">Revision as of 09:20, 11 February 2024</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l8" >Line 8:</td>
<td colspan="2" class="diff-lineno">Line 8:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>==Explanation==  </div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>==Explanation==  </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">A development environment is the collection of tools used to create a computer program.  It generally includes an {{w|Interpreter_(programming)|interpreter}}, a {{w|package manager}}, and various {{w|Library_(computing)|libraries}} that the project needs. One such example is {{w|Python_(programming_language)|Python}}.</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">A development environment is the collection of tools used to create </del>a computer <del class="diffchange diffchange-inline">program.  It generally includes an {{w|Interpreter_(programming)|interpreter}}, </del>a <del class="diffchange diffchange-inline">{{w|package manager}}</del>, <del class="diffchange diffchange-inline">and various {{w|Library_(computing)|libraries}} that the project needs</del>. <del class="diffchange diffchange-inline"> Computer programs often depend on a specific version </del>of these tools, <del class="diffchange diffchange-inline">such as a program </del>that <del class="diffchange diffchange-inline">only runs </del>on Python 2.7. <del class="diffchange diffchange-inline"> A badly configured build environment can lead </del>to <del class="diffchange diffchange-inline">mysterious errors as </del>the program <del class="diffchange diffchange-inline">looks for libraries or features that aren't there, making </del>it <del class="diffchange diffchange-inline">hard to develop stable and portable software</del>.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">Historically, </ins>a computer <ins class="diffchange diffchange-inline">would have only </ins>a <ins class="diffchange diffchange-inline">single such environment</ins>, <ins class="diffchange diffchange-inline">ie</ins>. <ins class="diffchange diffchange-inline">only one copy </ins>of these tools <ins class="diffchange diffchange-inline">installed</ins>, <ins class="diffchange diffchange-inline">with all programs running off of it. However, people quickly discovered </ins>that <ins class="diffchange diffchange-inline">this caused issues when said tools got updated and unintentionally break the programs. As an example, many programs still run </ins>on Python 2.7 <ins class="diffchange diffchange-inline">(released in 2010) because Python 3</ins>.<ins class="diffchange diffchange-inline">x changed things around so much that the effort </ins>to <ins class="diffchange diffchange-inline">alter </ins>the program <ins class="diffchange diffchange-inline">to run on </ins>it <ins class="diffchange diffchange-inline">was deemed too much effort</ins>.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">{{w|Python_(programming_language)|Python}} is a {{w|computer}} {{w|programming language}} which has been around for quite a while</del>, <del class="diffchange diffchange-inline">especially on {{w|Linux}} platforms</del>. <del class="diffchange diffchange-inline">[[Randall]] has shown his fascination with Python [[353: Python|before]]. He has likely used </del>it <del class="diffchange diffchange-inline">on his computer </del>for <del class="diffchange diffchange-inline">quite </del>a <del class="diffchange diffchange-inline">few years, from the early years when it wasn't so easy </del>to <del class="diffchange diffchange-inline">install, through newer versions where there is a more defined way to install it. Because standards change over time (in particular, although </del>the <del class="diffchange diffchange-inline">newest version of Python is Python 3.x, many people prefer Python 2.x</del>, <del class="diffchange diffchange-inline">and </del>it<del class="diffchange diffchange-inline">'s still widely used </del>for <del class="diffchange diffchange-inline">backward-compatibility), and he didn't completely uninstall old versions before installing </del>new <del class="diffchange diffchange-inline">versions (likely to not break what was already working), </del>he<del class="diffchange diffchange-inline">'s ended up with a mess where different pieces and versions </del>of Python <del class="diffchange diffchange-inline">and its related components litter </del>his <del class="diffchange diffchange-inline">{{w|hard drive}}'s {{w|directory structure}}</del>.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">In an attempt to solve the above issue</ins>, <ins class="diffchange diffchange-inline">the solution was determined to simply have each program have their own copy of the tools that they could be free to modify however they like without worrying about how it might affect other programs</ins>. <ins class="diffchange diffchange-inline">Multiple tools were then developed intending to make </ins>it <ins class="diffchange diffchange-inline">easier </ins>for a <ins class="diffchange diffchange-inline">user </ins>to <ins class="diffchange diffchange-inline">manage and keep track of </ins>the <ins class="diffchange diffchange-inline">now-multiple environments</ins>, <ins class="diffchange diffchange-inline">but </ins>it <ins class="diffchange diffchange-inline">seems that </ins>for <ins class="diffchange diffchange-inline">Randall this has simply created a </ins>new <ins class="diffchange diffchange-inline">issue: </ins>he <ins class="diffchange diffchange-inline">has lost track of which copy </ins>of Python his <ins class="diffchange diffchange-inline">computer uses by default</ins>.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>{{w|Superfund}} is a US federal government program created for cleaning up contaminated land. The comic is saying that his computer's Python environment is so messed up that it's comparable to a real-world environmental disaster.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>{{w|Superfund}} is a US federal government program created for cleaning up contaminated land. The comic is saying that his computer's Python environment is so messed up that it's comparable to a real-world environmental disaster.</div></td></tr>
</table>172.71.219.3https://www.explainxkcd.com/wiki/index.php?title=1987:_Python_Environment&diff=316428&oldid=prevWilh3lm: /* Explanation */ Randall has two l's2023-06-27T22:17:00Z<p><span dir="auto"><span class="autocomment">Explanation: </span> Randall has two l's</span></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr style="vertical-align: top;" lang="en">
<td colspan="2" style="background-color: white; color:black; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: white; color:black; text-align: center;">Revision as of 22:17, 27 June 2023</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l32" >Line 32:</td>
<td colspan="2" class="diff-lineno">Line 32:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>:{{w|Anaconda (Python distribution)|Anaconda}} is a Python distribution for data science and machine learning-related applications.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>:{{w|Anaconda (Python distribution)|Anaconda}} is a Python distribution for data science and machine learning-related applications.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>;Homebrew Python (3.6)</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>;Homebrew Python (3.6)</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>:As of the creation of the comic, Python 3.6 is the current stable version of Python. It can be installed together with Python 2.7 on the same computer. Care must be taken to use an appropriate version for every Python program, however. Homebrew is a "macos" package management utility. Presumably, <del class="diffchange diffchange-inline">Randal </del>installed Python 3.6 with Homebrew (as opposed to downloading and compiling the language himself).</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>:As of the creation of the comic, Python 3.6 is the current stable version of Python. It can be installed together with Python 2.7 on the same computer. Care must be taken to use an appropriate version for every Python program, however. Homebrew is a "macos" package management utility. Presumably, <ins class="diffchange diffchange-inline">Randall </ins>installed Python 3.6 with Homebrew (as opposed to downloading and compiling the language himself).</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>;Python.org binary (2.6)</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>;Python.org binary (2.6)</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>:[http://python.org Python.org] is the home site of the {{w|Python_(programming_language)|Python language}} and provides its reference implementation. Among other stuff, there are downloadable installers that create ready-to-use Python environments for you (on Windows and macOS only). It makes little sense, however, to use it on a computer where Homebrew, Anaconda, and a locally compiled version are already present, since the Python.org version is the baseline one, doesn't give you any benefits, and can't be optimized for your needs. Having an obsolete 2.6 version, when the typically used 2.7 is already on the computer, also doesn't help. Some justified uses do exist (tests, programs that depend on this particular version), but in the end, an extra version of Python just adds to the overall confusion.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>:[http://python.org Python.org] is the home site of the {{w|Python_(programming_language)|Python language}} and provides its reference implementation. Among other stuff, there are downloadable installers that create ready-to-use Python environments for you (on Windows and macOS only). It makes little sense, however, to use it on a computer where Homebrew, Anaconda, and a locally compiled version are already present, since the Python.org version is the baseline one, doesn't give you any benefits, and can't be optimized for your needs. Having an obsolete 2.6 version, when the typically used 2.7 is already on the computer, also doesn't help. Some justified uses do exist (tests, programs that depend on this particular version), but in the end, an extra version of Python just adds to the overall confusion.</div></td></tr>
</table>Wilh3lmhttps://www.explainxkcd.com/wiki/index.php?title=1987:_Python_Environment&diff=271936&oldid=prev162.158.34.207: Undo revision 271120 by Explain xkcd server admin (talk)2022-05-20T23:18:58Z<p>Undo revision 271120 by <a href="/wiki/index.php/Special:Contributions/Explain_xkcd_server_admin" title="Special:Contributions/Explain xkcd server admin">Explain xkcd server admin</a> (<a href="/wiki/index.php?title=User_talk:Explain_xkcd_server_admin&action=edit&redlink=1" class="new" title="User talk:Explain xkcd server admin (page does not exist)">talk</a>)</p>
<a href="//www.explainxkcd.com/wiki/index.php?title=1987:_Python_Environment&diff=271936&oldid=271120">Show changes</a>162.158.34.207https://www.explainxkcd.com/wiki/index.php?title=1987:_Python_Environment&diff=271120&oldid=prevExplain xkcd server admin at 21:39, 20 May 20222022-05-20T21:39:36Z<p></p>
<a href="//www.explainxkcd.com/wiki/index.php?title=1987:_Python_Environment&diff=271120&oldid=259761">Show changes</a>Explain xkcd server adminhttps://www.explainxkcd.com/wiki/index.php?title=1987:_Python_Environment&diff=259761&oldid=prevJacky720: rv2022-05-04T23:32:41Z<p>rv</p>
<a href="//www.explainxkcd.com/wiki/index.php?title=1987:_Python_Environment&diff=259761&oldid=259738">Show changes</a>Jacky720https://www.explainxkcd.com/wiki/index.php?title=1987:_Python_Environment&diff=259738&oldid=prevEx Kay Cee Dee at 23:32, 4 May 20222022-05-04T23:32:35Z<p></p>
<a href="//www.explainxkcd.com/wiki/index.php?title=1987:_Python_Environment&diff=259738&oldid=256093">Show changes</a>Ex Kay Cee Deehttps://www.explainxkcd.com/wiki/index.php?title=1987:_Python_Environment&diff=256093&oldid=prevJacky720: rv2022-05-04T22:31:30Z<p>rv</p>
<a href="//www.explainxkcd.com/wiki/index.php?title=1987:_Python_Environment&diff=256093&oldid=255308">Show changes</a>Jacky720https://www.explainxkcd.com/wiki/index.php?title=1987:_Python_Environment&diff=255308&oldid=prevEx Kay Cee Dee at 22:26, 4 May 20222022-05-04T22:26:39Z<p></p>
<a href="//www.explainxkcd.com/wiki/index.php?title=1987:_Python_Environment&diff=255308&oldid=253374">Show changes</a>Ex Kay Cee Deehttps://www.explainxkcd.com/wiki/index.php?title=1987:_Python_Environment&diff=253374&oldid=prevJacky720: rv2022-05-04T22:10:07Z<p>rv</p>
<a href="//www.explainxkcd.com/wiki/index.php?title=1987:_Python_Environment&diff=253374&oldid=253312">Show changes</a>Jacky720https://www.explainxkcd.com/wiki/index.php?title=1987:_Python_Environment&diff=253312&oldid=prevEx Kay Cee Dee at 22:09, 4 May 20222022-05-04T22:09:44Z<p></p>
<a href="//www.explainxkcd.com/wiki/index.php?title=1987:_Python_Environment&diff=253312&oldid=246030">Show changes</a>Ex Kay Cee Dee