<div dir="ltr"><div><div><div><div><div><div><div>Hi all,<br><br></div>Here is in somewhat more detail my earlier proposal for<br></div>having in the interactive Python interpreter a `pip` function to <br></div>install packages from Pypi.<br><br></div>Motivation: it appears to me that there is a category of newbies<br></div>for which "open a shell and do `pip whatever`" is a bit too much.<br><br></div><div>It would, in my opinion, simplify things a bit if they could just<br></div><div>copy-and-paste some text into the Python interpreter and have<br></div><div>some packages from pip installed. <br></div><div>That would simplify instructions on how to install package xyz,<br></div><div>without going into the vagaries of how to open a shell on various <br></div><div>platforms, and how to get to the right pip executable.<br><br></div><div>I think this could be as simple as:<br><br>  def pip(args):<br>      import sys<br>      import subprocess<br>      subprocess.check_call([sys.executable, "-m", "pip"] + args.split())<br></div><div>      print("Please re-start Python now to use installed or upgraded packages.")<br><br></div><div>Note that I added the final message about restarting the interpreter<br></div><div>as a low-tech solution to the problem of packages being already<br></div><div>imported in the current Python session.<br><br></div><div>I would imagine that the author of package xyz would then put on<br></div><div>their webpage something like:<br><br></div><div>  To use, enter in your Python interpreter:<br></div><div>     pip("install xyz --user")<br><br></div><div>As another example, consider prof. Baldwin from Woolamaloo university<br></div><div>who teaches a course "Introductory Python programming for Sheep Shavers".<br><br></div><div>In his course material, he instructs his students to execute the<br></div><div>following line in their Python interpreter.<br><br></div><div>   pip("install woolamaloo-sheepshavers-goodies --user")<br><br></div><div>which will install a package which will in turn, as dependencies,<br></div><div>pull in a number of packages which are relevant for sheep shaving but<br></div><div>which have nevertheless irresponsibly been left outside the stdlib.<br><br></div><div>Stephan<br></div><div><br></div><div><br><br></div></div></div>