Changeset 94

Show
Ignore:
Timestamp:
Fri Sep 16 13:00:33 2005
Author:
giovannibajo
Message:

Change the main title of the manual

Files:

Legend:

Unmodified
Added
Removed
Modified
  • trunk/doc/Manual.html

    r92 r94  
    11 11 </head>  
    12 12 <body>  
    13   <div class="document" id="pyinstaller-tutorial">  
    14   <h1 class="title">PyInstaller Tutorial</h1>  
      13 <div class="document" id="pyinstaller-manual">  
      14 <h1 class="title">PyInstaller Manual</h1>  
    15 15 <table class="docinfo" frame="void" rules="none">  
    16 16 <col class="docinfo-name" />  
     
    22 22 <td><a class="first last reference" href="mailto:william&#64;hpcf.upr.edu">william&#64;hpcf.upr.edu</a></td></tr>  
    23 23 <tr><th class="docinfo-name">Revision:</th>  
    24   <td>87</td></tr>  
    25   <tr class="field"><th class="docinfo-name">Source URL:</th><td class="field-body">svn://pyinstaller/trunk/doc/source/Tutorial.rst</td>  
      24 <td>88</td></tr>  
      25 <tr class="field"><th class="docinfo-name">Source URL:</th><td class="field-body">svn://pyinstaller/trunk/doc/source/Manual.rst</td>  
    26 26 </tr>  
    27 27 <tr><th class="docinfo-name">Copyright:</th>  
     
    145 145 version you wish to work with <em>or</em> you'll need to rerun <tt class="docutils literal"><span class="pre">Configure.py</span></tt> every  
    146 146 time you switch the Python version).</p>  
    147   <p><a class="reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      147 <p><a class="reference" href="#pyinstaller-manual">Back to Top</a></p>  
    147 147 </div>  
    148 148 <div class="section">  
     
    177 177 you need to install <a class="reference" href="http://www.scons.org">Scons</a>, and then just run <tt class="docutils literal"><span class="pre">scons</span></tt> from the /your/path/to/pyinstaller/  
    178 178 directory.</p>  
    179   <p><a class="reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      179 <p><a class="reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    179 179 </div>  
    180 180 <div class="section">  
     
    185 185 It can be rerun at any time if your configuration changes. It must be run before  
    186 186 trying to build anything.</p>  
    187   <p><a class="reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      187 <p><a class="reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    187 187 </div>  
    188 188 <div class="section">  
     
    258 258 actually Python code, and modifying it should be ease. See <a class="reference" href="#spec-files">Spec Files</a> for  
    259 259 details.</p>  
    260   <p><a class="reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      260 <p><a class="reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    260 260 </div>  
    261 261 <div class="section">  
     
    273 273 <p>In most cases, this will be all you have to do. If not, see <a class="reference" href="#when-things-go-wrong">When things go  
    274 274 wrong</a> and be sure to read the introduction to <a class="reference" href="#spec-files">Spec Files</a>.</p>  
    275   <p><a class="reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      275 <p><a class="reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    275 275 </div>  
    276 276 <div class="section">  
     
    318 318 <p>MakeCOMServer also assumes that your top level code (registration etc.) is  
    319 319 &quot;normal&quot;. If it's not, you will have to edit the generated script.</p>  
    320   <p><a class="reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      320 <p><a class="reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    320 320 </div>  
    321 321 <div class="section">  
     
    335 335 </pre>  
    336 336 <p>See <a class="reference" href="#spec-files">Spec Files</a> for details.</p>  
    337   <p><a class="reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      337 <p><a class="reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    337 337 </div>  
    338 338 <div class="section">  
     
    361 361 docs, since what PyInstaller opens is the executable Installer created, not the  
    362 362 temporary upx-created executable.</p>  
    363   <p><a class="reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      363 <p><a class="reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    363 363 </div>  
    364 364 <div class="section">  
     
    399 399 you shouldn't do setuid root programs using <tt class="docutils literal"><span class="pre">--onefile</span></tt>. <strong>In fact, we do not  
    400 400 recomend the use of --onefile on setuid programs.</strong></p>  
    401   <p><a class="reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      401 <p><a class="reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    401 401 </div>  
    402 402 <div class="section">  
     
    409 409 with those operating systems. We plan to fix this issue in a future version  
    410 410 of PyInstaller (consult our <a class="reference" href="http://pyinstaller.hpcf.upr.edu/pyinstaller/roadmap">Roadmap</a> for more information).</p>  
    411   <p><a class="reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      411 <p><a class="reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    411 411 </div>  
    412 412 </div>  
     
    434 434 <dd>Quit.</dd>  
    435 435 </dl>  
    436   <p><a class="reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      436 <p><a class="reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    436 436 </div>  
    437 437 <div class="section">  
     
    467 467 information you want, grab it's resource and edit it. Certainly easier than  
    468 468 the Version resource wizard in VC++.</p>  
    469   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      469 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    469 469 </div>  
    470 470 <div class="section">  
     
    474 474 cross-references by using <tt class="docutils literal"><span class="pre">mf.py</span></tt>, documented in section <a class="reference" href="#mf-py-a-modulefinder-replacement">mf.py: A modulefinder  
    475 475 Replacement</a></p>  
    476   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      476 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    476 476 </div>  
    477 477 </div>  
     
    513 513 single-file deployment, the binaries. In a single-directory deployment, a  
    514 514 directory is built containing a slim executable and the binaries.</p>  
    515   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      515 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    515 515 </div>  
    516 516 <div class="section">  
     
    661 661 multiple executables with minimal redundancy. You'll need some top level code  
    662 662 in each executable to mount the common <tt class="docutils literal"><span class="pre">PYZ</span></tt>.</p>  
    663   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      663 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    663 663 </div>  
    664 664 <div class="section">  
     
    693 693 any shared lib in <tt class="docutils literal"><span class="pre">/lib</span></tt> or <tt class="docutils literal"><span class="pre">/usr/lib</span></tt> is excluded.</dd>  
    694 694 </dl>  
    695   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      695 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    695 695 </div>  
    696 696 <div class="section">  
     
    708 708 <dd>The Zlib compression level to use. If 0, the zlib module is not required.</dd>  
    709 709 </dl>  
    710   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      710 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    710 710 </div>  
    711 711 <div class="section">  
     
    731 731 forwarded to its container (usually a <tt class="docutils literal"><span class="pre">COLLECT</span></tt>).</dd>  
    732 732 </dl>  
    733   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      733 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    733 733 </div>  
    734 734 <div class="section">  
     
    771 771 as <tt class="docutils literal"><span class="pre">EXE</span></tt> is determined by a flag in <tt class="docutils literal"><span class="pre">config.dat</span></tt>. This flag is set to  
    772 772 non-ELF when using <tt class="docutils literal"><span class="pre">Make.py</span> <span class="pre">-n</span></tt>.</p>  
    773   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      773 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    773 773 </div>  
    774 774 <div class="section">  
     
    780 780 write your own dll, but thanks to Allan Green for refactoring the C code and  
    781 781 making that a managable task.</p>  
    782   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      782 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    782 782 </div>  
    783 783 <div class="section">  
     
    798 798 </dd>  
    799 799 </dl>  
    800   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      800 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    800 800 </div>  
    801 801 <div class="section">  
     
    822 822 <p>Since a <tt class="docutils literal"><span class="pre">Tree</span></tt> is a <tt class="docutils literal"><span class="pre">TOC</span></tt>, you can also use the exclude technique described above  
    823 823 in the section on <tt class="docutils literal"><span class="pre">TOCs</span></tt>.</p>  
    824   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      824 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    824 824 </div>  
    825 825 </div>  
     
    858 858 <p>Any problem detected here can be handled by hooking the analysis of the module.  
    859 859 See <a class="reference" href="#listing-hidden-imports">Listing Hidden Imports</a> below for how to do it.</p>  
    860   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      860 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    860 860 </div>  
    861 861 <div class="section">  
     
    866 866 MessageBoxes). This can be useful if you are doing complex packaging, or your  
    867 867 app doesn't seem to be starting, or just to learn how the runtime works.</p>  
    868   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      868 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    868 868 </div>  
    869 869 <div class="section">  
     
    885 885 <p>These messages will always go to <tt class="docutils literal"><span class="pre">stdout</span></tt>, so you won't see them on Windows if  
    886 886 <tt class="docutils literal"><span class="pre">console=0</span></tt>.</p>  
    887   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      887 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    887 887 </div>  
    888 888 </div>  
     
    908 908 </pre>  
    909 909 <p>(on *nix, use <tt class="docutils literal"><span class="pre">:</span></tt> as the path separator).</p>  
    910   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      910 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    910 910 </div>  
    911 911 <div class="section">  
     
    943 943 <p>If you successfully hook a publicly distributed module in this way, please send  
    944 944 us the hook so we can make it available to others.</p>  
    945   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      945 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    945 945 </div>  
    946 946 <div class="section">  
     
    967 967 way as <tt class="docutils literal"><span class="pre">win32com.anythingelse</span></tt>, and <tt class="docutils literal"><span class="pre">win32com.__path__</span></tt> knows nothing of <tt class="docutils literal"><span class="pre">../win32comext</span></tt>.</p>  
    968 968 <p>Once in awhile, that's not enough.</p>  
    969   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      969 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    969 969 </div>  
    970 970 <div class="section">  
     
    992 992 can generate modules at runtime (to disk), and the generated modules can be  
    993 993 found in the win32com package.</p>  
    994   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      994 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    994 994 </div>  
    995 995 <div class="section">  
     
    1005 1005 <p>For really advanced users, you can access the <tt class="docutils literal"><span class="pre">iu.ImportManager</span></tt> as  
    1006 1006 <tt class="docutils literal"><span class="pre">sys.importManager</span></tt>. See <a class="reference" href="#iu-py">iu.py</a> for how you might make use of this fact.</p>  
    1007   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      1007 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    1007 1007 </div>  
    1008 1008 <div class="section">  
     
    1033 1033 example (the TCL and TK lib files are in a PKG which is opened in place, and  
    1034 1034 then extracted to the filesystem).</p>  
    1035   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      1035 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    1035 1035 </div>  
    1036 1036 </div>  
     
    1044 1044 instructions in that script, you'll end up with a module named <tt class="docutils literal"><span class="pre">Pmw.py</span></tt>. Ensure  
    1045 1045 that Builder finds that module and not the development package.</p>  
    1046   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      1046 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    1046 1046 </div>  
    1047 1047 <div class="section">  
     
    1052 1052 Win32all, this would apply to Win32pipe and <tt class="docutils literal"><span class="pre">win32popenWin9x.exe</span></tt>. (On yet older  
    1053 1053 Pythons, no form of popen worked on Win9x).</p>  
    1054   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      1054 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    1054 1054 </div>  
    1055 1055 <div class="section">  
     
    1064 1064 archive is named <tt class="docutils literal"><span class="pre">executable.pkg</span></tt>, and expected to be in the same directory.  
    1065 1065 Other than that, the process is the same.</p>  
    1066   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      1066 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    1066 1066 <div class="section">  
    1067 1067 <h3><a class="toc-backref" href="#id45" id="one-pass-execution" name="one-pass-execution">One Pass Execution</a></h3>  
     
    1079 1079 <li>finalizes Python</li>  
    1080 1080 </ul>  
    1081   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      1081 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    1081 1081 </div>  
    1082 1082 <div class="section">  
     
    1118 1118 <p>In both cases, while one PyInstaller download can be used with any Python  
    1119 1119 version, you need to have separate installations for each Python version.</p>  
    1120   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      1120 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    1120 1120 </div>  
    1121 1121 </div>  
     
    1134 1134 from C, as well as from Python. Both of these derive from a common base class,  
    1135 1135 making it fairly easy to create new kinds of archives.</p>  
    1136   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      1136 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    1136 1136 </div>  
    1137 1137 <div class="section">  
     
    1152 1152 useful, but if they send you the traceback, at least you can make sense of it.</p>  
    1153 1153 <p><img alt="ZlibArchiveImage" src="images/ZlibArchive.png" /></p>  
    1154   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      1154 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    1154 1154 </div>  
    1155 1155 <div class="section">  
     
    1171 1171 are used by the self-extracting executables.</p>  
    1172 1172 <p><img alt="CArchiveImage" src="images/CArchive.png" /></p>  
    1173   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      1173 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    1173 1173 </div>  
    1174 1174 </div>  
     
    1194 1194 <a class="reference" href="http://pyinstaller.hpcf.upr.edu/pyinstaller/wiki/FAQ">FAQ</a> at <a class="reference" href="http://pyinstaller.hpcf.upr.edu/pyinstaller">PyInstaller</a>  
    1195 1195 home page: <a class="reference" href="http://pyinstaller.hpcf.upr.edu">http://pyinstaller.hpcf.upr.edu</a></p>  
    1196   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      1196 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    1196 1196 </div>  
    1197 1197 <div class="section">  
     
    1211 1211 objects, they are identical.</p>  
    1212 1212 <p>Instead of an <tt class="docutils literal"><span class="pre">ImportManager</span></tt>, <tt class="docutils literal"><span class="pre">mf</span></tt> has an <tt class="docutils literal"><span class="pre">ImportTracker</span></tt> managing things.</p>  
    1213   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      1213 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    1213 1213 <div class="section">  
    1214 1214 <h3><a class="toc-backref" href="#id54" id="importtracker" name="importtracker">ImportTracker</a></h3>  
     
    1221 1221 name?&quot; But since it is somewhat unrealistic (very few real imports do not  
    1222 1222 involve recursion), it deserves some explanation.</p>  
    1223   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      1223 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    1223 1223 </div>  
    1224 1224 <div class="section">  
     
    1236 1236 absolute. In addition, ImportTracker's modules dict will have Module instances  
    1237 1237 for them.</p>  
    1238   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      1238 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    1238 1238 </div>  
    1239 1239 <div class="section">  
     
    1251 1251 (from what a structural analysis would predict). But mf can handle this through  
    1252 1252 it's hooks mechanism.</p>  
    1253   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      1253 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    1253 1253 </div>  
    1254 1254 <div class="section">  
     
    1265 1265 are found inside definitions (deferred imports). Within that, it also tracks  
    1266 1266 whether the import is inside a condition (conditional imports).</p>  
    1267   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      1267 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    1267 1267 </div>  
    1268 1268 <div class="section">  
     
    1295 1295 called before looking at the others - that way it can, for example, test  
    1296 1296 <tt class="docutils literal"><span class="pre">sys.version</span></tt> and adjust what's in <tt class="docutils literal"><span class="pre">hiddenimports</span></tt>.</p>  
    1297   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      1297 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    1297 1297 </div>  
    1298 1298 <div class="section">  
     
    1306 1306 <p>Note that by using a hook module, you can silence some particularly tiresome  
    1307 1307 warnings, but not all of them.</p>  
    1308   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      1308 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    1308 1308 </div>  
    1309 1309 <div class="section">  
     
    1315 1315 names of the modules importing <tt class="docutils literal"><span class="pre">modulename</span></tt>. Both the returned list and the  
    1316 1316 importers list are sorted.</p>  
    1317   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      1317 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    1317 1317 </div>  
    1318 1318 <div class="section">  
     
    1363 1363 </pre>  
    1364 1364 </blockquote>  
    1365   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      1365 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    1365 1365 </div>  
    1366 1366 </div>  
     
    1379 1379 and hides all the semantic complexities of a Python import request from it's  
    1380 1380 delegates.</p>  
    1381   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      1381 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    1381 1381 <div class="section">  
    1382 1382 <h3><a class="toc-backref" href="#id63" id="importmanager" name="importmanager"><tt class="docutils literal docutils literal"><span class="pre">ImportManager</span></tt></a></h3>  
     
    1395 1395 to see if the module has already been imported; to keep <tt class="docutils literal"><span class="pre">sys.modules</span></tt> up to  
    1396 1396 date; to handle the fromlist and return the correct module object.</p>  
    1397   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      1397 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    1397 1397 </div>  
    1398 1398 <div class="section">  
     
    1403 1403 atomic - it has no need to examine name to see if it is dotted.</p>  
    1404 1404 <p>To see how this works, we need to examine the <tt class="docutils literal"><span class="pre">PathImportDirector</span></tt>.</p>  
    1405   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      1405 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    1405 1405 </div>  
    1406 1406 <div class="section">  
     
    1414 1414 your imports are satisfied by the first two elements of <tt class="docutils literal"><span class="pre">sys.path</span></tt>, the  
    1415 1415 <tt class="docutils literal"><span class="pre">PathImportDirector</span></tt>'s shadowpath will only have two entries).</p>  
    1416   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      1416 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    1416 1416 </div>  
    1417 1417 <div class="section">  
     
    1432 1432 <p>The rest of the import namespace is covered by treelets, each rooted in a  
    1433 1433 package module (an <tt class="docutils literal"><span class="pre">__init__.py</span></tt>).</p>  
    1434   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      1434 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    1434 1434 </div>  
    1435 1435 <div class="section">  
     
    1450 1450 perfectly easy to route the request back up the package tree to the archive  
    1451 1451 <tt class="docutils literal"><span class="pre">Owner</span></tt>, qualifying the name at each step.)</p>  
    1452   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      1452 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    1452 1452 </div>  
    1453 1453 <div class="section">  
     
    1465 1465 <p>Once the new <tt class="docutils literal"><span class="pre">Owner</span></tt> class is registered with <tt class="docutils literal"><span class="pre">iu</span></tt>, you can put a zip file on  
    1466 1466 <tt class="docutils literal"><span class="pre">sys.path</span></tt>. A package could even put a zip file on its <tt class="docutils literal"><span class="pre">__path__</span></tt>.</p>  
    1467   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      1467 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    1467 1467 </div>  
    1468 1468 <div class="section">  
     
    1474 1474 nearly exact, including the names recorded in <tt class="docutils literal"><span class="pre">sys.modules</span></tt> and module attributes  
    1475 1475 (packages imported through <tt class="docutils literal"><span class="pre">iu</span></tt> have an extra attribute - <tt class="docutils literal"><span class="pre">__importsub__</span></tt>).</p>  
    1476   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-tutorial">Back to Top</a></p>  
      1476 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    1476 1476 </div>  
    1477 1477 <div class="section">  
     
    1483 1483 to 5 to 10% slower (or, on my 1.52 box, 10% faster!) than builtin import. A bit  
    1484 1484 more can be shaved off by manipulating the <tt class="docutils literal"><span class="pre">ImportManager</span></tt>'s metapath.</p>  
    1485   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference reference r