<div>Update in case anybody else wants the info:</div>
<div>&nbsp;</div>
<div>** Caveat - I&#39;ve only tried this on XP Professional</div>
<div>&nbsp;</div>
<div>If you copy the files from your python installation (i.e. C:\Python24), and try to run python.exe on a machine where python is not installed, you get errors for a few .dll files not found.&nbsp; Copy them into the same folder as 
python.exe, and you&#39;re in business (I think this is specific to how XP handles .dll&#39;s)</div>
<div>&nbsp;</div>
<div>PyWin32 also has at least 1 .dll which must be copied in as well to work.</div>
<div>&nbsp;</div>
<div>Having done this, I was up and running with everything under \Lib, including site-packages.&nbsp; Copying the wxpython docs and demos, however, only mostly worked.&nbsp; Some of the &#39;deeper&#39; modules wouldn&#39;t import (like the Flash window as an ActiveX control).&nbsp; At that point I did a lot of reading about how the import statement works &#39;under the hood&#39;, how windows associates file extensions to programs, environment variables, etc...
</div>
<div>&nbsp;</div>
<div>I don&#39;t think I can summarize all of that stuff very well.&nbsp; It&#39;s very interesting if you find such things interesting.</div>
<div>&nbsp;</div>
<div>I have gone into windows explorer, chose Tools-&gt;Folder Options -&gt; (don&#39;t remember exactly from here and this definately depends on Windows version), set .py files to go to pythonw.exe, and that has everything working with a double click, even the funky wxpython demo stuff.
</div>
<div>&nbsp;</div>
<div>Long story short (and these are educated guesses until I do some more tinkering) - I believe:</div>
<div>&nbsp;</div>
<div>1. A windows user without admin authority cannot run an installer, or edit HKEY_LOCAL_MACHINE.</div>
<div>&nbsp;</div>
<div>2. A windows user without admin authority can edit HKEY_CURRENT_USER.&nbsp; (When you pick what program should open .mp3 files, that&#39;s writing here)</div>
<div>&nbsp;</div>
<div>3. Whenever Windows cares about anything that would be in HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER is checked first (I&#39;m not very sure how universal this is, but it is definately true sometimes at least)</div>
<div>&nbsp;</div>
<div>4. Installers typically write to HKEY_LOCAL_MACHINE, the Python installers choice between install for all users or install just for me is really letting you choose between HKEY_LOCAL_MACHINE and HKEY_CURRENT _USER.</div>

<div>&nbsp;</div>
<div>5. Through regedit, you can export any piece of the registry, or the whole thing.&nbsp; The output is essentially text.</div>
<div>&nbsp;</div>
<div>6.&nbsp; By comparing snapshots of the registry before and after an install, you can find all keys an installer added / deleted / edited</div>
<div>&nbsp;</div>
<div>7.&nbsp;IF (and it&#39;s a big if) my set of assumptions are correct, I can write a utility to &#39;watch&#39; an install, translating the local machine keys to current user keys.&nbsp; I can also write a utility to use that output to make any installed program &#39;portable&#39;.&nbsp; It would check for the appropriate keys first, and add them if needed, mapping the paths based on it&#39;s own location.&nbsp;There&#39;s probably even a way to have these keys removed with the next system shutdown.&nbsp; At that point, anything could live on a CD or USB drive, waiting for you to pop it into any arbitrary windows machine and run it.
</div>
<div>&nbsp;</div>
<div>I&#39;m pretty happy with results so far.&nbsp; I have Python on a shared network drive living on a file and print server, but I can run scripts from machines where I&#39;m not an admin without installing after 10 - 20&nbsp;seconds of setup.&nbsp; I will keep tinkering (and reporting results) though.&nbsp; At this point it&#39;s worth it as a learning exercise.&nbsp; I&#39;ve learned as much about Windows and Python internals in the past few weeks as I had in the past few years.
</div>
<div>&nbsp;</div>
<div>Hope somebody finds this helpful, and input is appreciated as always!</div>