<div dir="ltr">Hi Alex,<br><div><div class="gmail_extra"><br><div class="gmail_quote">2017-10-29 20:26 GMT+01:00 Alex Walters <span dir="ltr"><<a href="mailto:tritium-list@sdamon.com" target="_blank">tritium-list@sdamon.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div link="#0563C1" vlink="#954F72" lang="EN-US"><div class="m_5399571978442857160WordSection1"><p class="MsoNormal">        return “Please run pip from your system command prompt”<u></u><u></u></p><p class="MsoNormal"><u></u> </p></div></div></blockquote><div><br></div><div>The target audience for my proposal are people who do not know<br></div><div>which part of the sheep the "system command prompt" is.<br><br></div><div>Stephan<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div link="#0563C1" vlink="#954F72" lang="EN-US"><div class="m_5399571978442857160WordSection1"><p class="MsoNormal"><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><u></u> <u></u></p><div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt"><div><div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0in 0in 0in"><p class="MsoNormal"><b>From:</b> Python-ideas [mailto:<a href="mailto:python-ideas-bounces%2Btritium-list" target="_blank">python-ideas-bounces+<wbr>tritium-list</a>=<a href="mailto:sdamon.com@python.org" target="_blank">sdamon.com@<wbr>python.org</a>] <b>On Behalf Of </b>Stephan Houben<br><b>Sent:</b> Sunday, October 29, 2017 3:19 PM<br><b>To:</b> Python-Ideas <<a href="mailto:python-ideas@python.org" target="_blank">python-ideas@python.org</a>><br><b>Subject:</b> [Python-ideas] install pip packages from Python prompt<u></u><u></u></p></div></div><div><div class="h5"><p class="MsoNormal"><u></u> <u></u></p><div><div><div><div><div><div><div><div><p class="MsoNormal" style="margin-bottom:12.0pt">Hi all,<u></u><u></u></p></div><p class="MsoNormal">Here is in somewhat more detail my earlier proposal for<u></u><u></u></p></div><p class="MsoNormal">having in the interactive Python interpreter a `pip` function to <u></u><u></u></p></div><p class="MsoNormal" style="margin-bottom:12.0pt">install packages from Pypi.<u></u><u></u></p></div><p class="MsoNormal">Motivation: it appears to me that there is a category of newbies<u></u><u></u></p></div><p class="MsoNormal" style="margin-bottom:12.0pt">for which "open a shell and do `pip whatever`" is a bit too much.<u></u><u></u></p></div><div><p class="MsoNormal">It would, in my opinion, simplify things a bit if they could just<u></u><u></u></p></div><div><p class="MsoNormal">copy-and-paste some text into the Python interpreter and have<u></u><u></u></p></div><div><p class="MsoNormal">some packages from pip installed. <u></u><u></u></p></div><div><p class="MsoNormal">That would simplify instructions on how to install package xyz,<u></u><u></u></p></div><div><p class="MsoNormal">without going into the vagaries of how to open a shell on various <u></u><u></u></p></div><div><p class="MsoNormal" style="margin-bottom:12.0pt">platforms, and how to get to the right pip executable.<u></u><u></u></p></div><div><p class="MsoNormal">I think this could be as simple as:<br><br>  def pip(args):<br>      import sys<br>      import subprocess<br>      subprocess.check_call([sys.<wbr>executable, "-m", "pip"] + args.split())<u></u><u></u></p></div><div><p class="MsoNormal" style="margin-bottom:12.0pt">      print("Please re-start Python now to use installed or upgraded packages.")<u></u><u></u></p></div><div><p class="MsoNormal">Note that I added the final message about restarting the interpreter<u></u><u></u></p></div><div><p class="MsoNormal">as a low-tech solution to the problem of packages being already<u></u><u></u></p></div><div><p class="MsoNormal" style="margin-bottom:12.0pt">imported in the current Python session.<u></u><u></u></p></div><div><p class="MsoNormal">I would imagine that the author of package xyz would then put on<u></u><u></u></p></div><div><p class="MsoNormal" style="margin-bottom:12.0pt">their webpage something like:<u></u><u></u></p></div><div><p class="MsoNormal">  To use, enter in your Python interpreter:<u></u><u></u></p></div><div><p class="MsoNormal" style="margin-bottom:12.0pt">     pip("install xyz --user")<u></u><u></u></p></div><div><p class="MsoNormal">As another example, consider prof. Baldwin from Woolamaloo university<u></u><u></u></p></div><div><p class="MsoNormal" style="margin-bottom:12.0pt">who teaches a course "Introductory Python programming for Sheep Shavers".<u></u><u></u></p></div><div><p class="MsoNormal">In his course material, he instructs his students to execute the<u></u><u></u></p></div><div><p class="MsoNormal" style="margin-bottom:12.0pt">following line in their Python interpreter.<u></u><u></u></p></div><div><p class="MsoNormal" style="margin-bottom:12.0pt">   pip("install woolamaloo-sheepshavers-<wbr>goodies --user")<u></u><u></u></p></div><div><p class="MsoNormal">which will install a package which will in turn, as dependencies,<u></u><u></u></p></div><div><p class="MsoNormal">pull in a number of packages which are relevant for sheep shaving but<u></u><u></u></p></div><div><p class="MsoNormal" style="margin-bottom:12.0pt">which have nevertheless irresponsibly been left outside the stdlib.<u></u><u></u></p></div><div><p class="MsoNormal">Stephan<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal" style="margin-bottom:12.0pt"><u></u> <u></u></p></div></div></div></div></div></div></div></div></blockquote></div><br></div></div></div>