Changeset 258

Show
Ignore:
Timestamp:
Wed Feb 8 08:02:37 2006
Author:
giovannibajo
Message:

Update the compiled HTML manual

Files:

Legend:

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

    r164 r258  
    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>116</td></tr>  
      24 <td>257</td></tr>  
    24 24 <tr class="field"><th class="docinfo-name">Source URL:</th><td class="field-body">svn://pyinstaller/trunk/doc/source/Manual.rst</td>  
    25 25 </tr>  
     
    42 42 <li><a class="reference" href="#a-note-on-using-upx" id="id10" name="id10">A Note on using UPX</a></li>  
    43 43 <li><a class="reference" href="#a-note-on-onefile" id="id11" name="id11">A Note on <tt class="docutils literal"><span class="pre">--onefile</span></tt></a></li>  
      44 <li><a class="reference" href="#a-note-on-egg-files-and-setuptools" id="id12" name="id12">A Note on .egg files and setuptools</a></li>  
    44 45 </ul>  
    45 46 </li>  
    46   <li><a class="reference" href="#pyinstaller-utilities" id="id12" name="id12">PyInstaller Utilities</a><ul>  
    47   <li><a class="reference" href="#archiveviewer" id="id13" name="id13">ArchiveViewer</a></li>  
    48   <li><a class="reference" href="#bindepend" id="id14" name="id14">bindepend</a></li>  
    49   <li><a class="reference" href="#grabversion-windows" id="id15" name="id15">GrabVersion (Windows)</a></li>  
    50   <li><a class="reference" href="#analyzing-dependencies" id="id16" name="id16">Analyzing Dependencies</a></li>  
      47 <li><a class="reference" href="#pyinstaller-utilities" id="id13" name="id13">PyInstaller Utilities</a><ul>  
      48 <li><a class="reference" href="#archiveviewer" id="id14" name="id14">ArchiveViewer</a></li>  
      49 <li><a class="reference" href="#bindepend" id="id15" name="id15">bindepend</a></li>  
      50 <li><a class="reference" href="#grabversion-windows" id="id16" name="id16">GrabVersion (Windows)</a></li>  
      51 <li><a class="reference" href="#analyzing-dependencies" id="id17" name="id17">Analyzing Dependencies</a></li>  
    51 52 </ul>  
    52 53 </li>  
    53   <li><a class="reference" href="#spec-files" id="id17" name="id17">Spec Files</a><ul>  
    54   <li><a class="reference" href="#introduction" id="id18" name="id18">Introduction</a></li>  
    55   <li><a class="reference" href="#toc-class-table-of-contents" id="id19" name="id19">TOC Class (Table of Contents)</a></li>  
    56   <li><a class="reference" href="#target-subclasses" id="id20" name="id20">Target Subclasses</a><ul>  
    57   <li><a class="reference" href="#analysis" id="id21" name="id21">Analysis</a></li>  
    58   <li><a class="reference" href="#pyz" id="id22" name="id22">PYZ</a></li>  
    59   <li><a class="reference" href="#pkg" id="id23" name="id23">PKG</a></li>  
    60   <li><a class="reference" href="#exe" id="id24" name="id24">EXE</a></li>  
    61   <li><a class="reference" href="#dll" id="id25" name="id25">DLL</a></li>  
    62   <li><a class="reference" href="#collect" id="id26" name="id26">COLLECT</a></li>  
    63   <li><a class="reference" href="#tree" id="id27" name="id27">Tree</a></li>  
      54 <li><a class="reference" href="#spec-files" id="id18" name="id18">Spec Files</a><ul>  
      55 <li><a class="reference" href="#introduction" id="id19" name="id19">Introduction</a></li>  
      56 <li><a class="reference" href="#toc-class-table-of-contents" id="id20" name="id20">TOC Class (Table of Contents)</a></li>  
      57 <li><a class="reference" href="#target-subclasses" id="id21" name="id21">Target Subclasses</a><ul>  
      58 <li><a class="reference" href="#analysis" id="id22" name="id22">Analysis</a></li>  
      59 <li><a class="reference" href="#pyz" id="id23" name="id23">PYZ</a></li>  
      60 <li><a class="reference" href="#pkg" id="id24" name="id24">PKG</a></li>  
      61 <li><a class="reference" href="#exe" id="id25" name="id25">EXE</a></li>  
      62 <li><a class="reference" href="#dll" id="id26" name="id26">DLL</a></li>  
      63 <li><a class="reference" href="#collect" id="id27" name="id27">COLLECT</a></li>  
      64 <li><a class="reference" href="#tree" id="id28" name="id28">Tree</a></li>  
    64 65 </ul>  
    65 66 </li>  
    66 67 </ul>  
    67 68 </li>  
    68   <li><a class="reference" href="#when-things-go-wrong" id="id28" name="id28">When Things Go Wrong</a><ul>  
    69   <li><a class="reference" href="#finding-out-what-went-wrong" id="id29" name="id29">Finding out What Went Wrong</a><ul>  
    70   <li><a class="reference" href="#buildtime-warnings" id="id30" name="id30">Buildtime Warnings</a></li>  
    71   <li><a class="reference" href="#getting-debug-messages" id="id31" name="id31">Getting Debug Messages</a></li>  
    72   <li><a class="reference" href="#getting-python-s-verbose-imports" id="id32" name="id32">Getting Python's Verbose Imports</a></li>  
      69 <li><a class="reference" href="#when-things-go-wrong" id="id29" name="id29">When Things Go Wrong</a><ul>  
      70 <li><a class="reference" href="#finding-out-what-went-wrong" id="id30" name="id30">Finding out What Went Wrong</a><ul>  
      71 <li><a class="reference" href="#buildtime-warnings" id="id31" name="id31">Buildtime Warnings</a></li>  
      72 <li><a class="reference" href="#getting-debug-messages" id="id32" name="id32">Getting Debug Messages</a></li>  
      73 <li><a class="reference" href="#getting-python-s-verbose-imports" id="id33" name="id33">Getting Python's Verbose Imports</a></li>  
    73 74 </ul>  
    74 75 </li>  
    75   <li><a class="reference" href="#helping-installer-find-modules" id="id33" name="id33">Helping Installer Find Modules</a><ul>  
    76   <li><a class="reference" href="#extending-the-path" id="id34" name="id34">Extending the Path</a></li>  
    77   <li><a class="reference" href="#listing-hidden-imports" id="id35" name="id35">Listing Hidden Imports</a></li>  
    78   <li><a class="reference" href="#extending-a-package-s-path" id="id36" name="id36">Extending a Package's <tt class="docutils literal"><span class="pre">__path__</span></tt></a></li>  
    79   <li><a class="reference" href="#changing-runtime-behavior" id="id37" name="id37">Changing Runtime Behavior</a></li>  
    80   <li><a class="reference" href="#adapting-to-being-frozen" id="id38" name="id38">Adapting to being &quot;frozen&quot;</a></li>  
    81   <li><a class="reference" href="#accessing-data-files" id="id39" name="id39">Accessing Data Files</a></li>  
      76 <li><a class="reference" href="#helping-installer-find-modules" id="id34" name="id34">Helping Installer Find Modules</a><ul>  
      77 <li><a class="reference" href="#extending-the-path" id="id35" name="id35">Extending the Path</a></li>  
      78 <li><a class="reference" href="#listing-hidden-imports" id="id36" name="id36">Listing Hidden Imports</a></li>  
      79 <li><a class="reference" href="#extending-a-package-s-path" id="id37" name="id37">Extending a Package's <tt class="docutils literal"><span class="pre">__path__</span></tt></a></li>  
      80 <li><a class="reference" href="#changing-runtime-behavior" id="id38" name="id38">Changing Runtime Behavior</a></li>  
      81 <li><a class="reference" href="#adapting-to-being-frozen" id="id39" name="id39">Adapting to being &quot;frozen&quot;</a></li>  
      82 <li><a class="reference" href="#accessing-data-files" id="id40" name="id40">Accessing Data Files</a></li>  
    82 83 </ul>  
    83 84 </li>  
    84 85 </ul>  
    85 86 </li>  
    86   <li><a class="reference" href="#miscellaneous" id="id40" name="id40">Miscellaneous</a><ul>  
    87   <li><a class="reference" href="#pmw-python-mega-widgets" id="id41" name="id41">Pmw -- Python Mega Widgets</a></li>  
    88   <li><a class="reference" href="#win9xpopen" id="id42" name="id42">Win9xpopen</a></li>  
    89   <li><a class="reference" href="#self-extracting-executables" id="id43" name="id43">Self-extracting executables</a><ul>  
    90   <li><a class="reference" href="#one-pass-execution" id="id44" name="id44">One Pass Execution</a></li>  
    91   <li><a class="reference" href="#two-pass-execution" id="id45" name="id45">Two Pass Execution</a></li>  
      87 <li><a class="reference" href="#miscellaneous" id="id41" name="id41">Miscellaneous</a><ul>  
      88 <li><a class="reference" href="#pmw-python-mega-widgets" id="id42" name="id42">Pmw -- Python Mega Widgets</a></li>  
      89 <li><a class="reference" href="#win9xpopen" id="id43" name="id43">Win9xpopen</a></li>  
      90 <li><a class="reference" href="#self-extracting-executables" id="id44" name="id44">Self-extracting executables</a><ul>  
      91 <li><a class="reference" href="#one-pass-execution" id="id45" name="id45">One Pass Execution</a></li>  
      92 <li><a class="reference" href="#two-pass-execution" id="id46" name="id46">Two Pass Execution</a></li>  
    92 93 </ul>  
    93 94 </li>  
    94 95 </ul>  
    95 96 </li>  
    96   <li><a class="reference" href="#pyinstaller-archives" id="id46" name="id46">PyInstaller Archives</a><ul>  
    97   <li><a class="reference" href="#archives-introduction" id="id47" name="id47">Archives Introduction</a></li>  
    98   <li><a class="reference" href="#zlibarchive" id="id48" name="id48"><tt class="docutils literal"><span class="pre">ZlibArchive</span></tt></a></li>  
    99   <li><a class="reference" href="#carchive" id="id49" name="id49"><tt class="docutils literal"><span class="pre">CArchive</span></tt></a></li>  
      97 <li><a class="reference" href="#pyinstaller-archives" id="id47" name="id47">PyInstaller Archives</a><ul>  
      98 <li><a class="reference" href="#archives-introduction" id="id48" name="id48">Archives Introduction</a></li>  
      99 <li><a class="reference" href="#zlibarchive" id="id49" name="id49"><tt class="docutils literal"><span class="pre">ZlibArchive</span></tt></a></li>  
      100 <li><a class="reference" href="#carchive" id="id50" name="id50"><tt class="docutils literal"><span class="pre">CArchive</span></tt></a></li>  
    100 101 </ul>  
    101 102 </li>  
    102   <li><a class="reference" href="#license" id="id50" name="id50">License</a></li>  
    103   <li><a class="reference" href="#appendix" id="id51" name="id51">Appendix</a><ul>  
    104   <li><a class="reference" href="#mf-py-a-modulefinder-replacement" id="id52" name="id52"><tt class="docutils literal"><span class="pre">mf.py</span></tt>: A Modulefinder Replacement</a><ul>  
    105   <li><a class="reference" href="#importtracker" id="id53" name="id53">ImportTracker</a></li>  
    106   <li><a class="reference" href="#analyze-one" id="id54" name="id54"><tt class="docutils literal"><span class="pre">analyze_one()</span></tt></a></li>  
    107   <li><a class="reference" href="#module-classes" id="id55" name="id55">Module Classes</a></li>  
    108   <li><a class="reference" href="#code-scanning" id="id56" name="id56">code scanning</a></li>  
    109   <li><a class="reference" href="#hooks" id="id57" name="id57">Hooks</a></li>  
    110   <li><a class="reference" href="#warnings" id="id58" name="id58">Warnings</a></li>  
    111   <li><a class="reference" href="#cross-reference" id="id59" name="id59">Cross Reference</a></li>  
    112   <li><a class="reference" href="#usage" id="id60" name="id60">Usage</a></li>  
      103 <li><a class="reference" href="#license" id="id51" name="id51">License</a></li>  
      104 <li><a class="reference" href="#appendix" id="id52" name="id52">Appendix</a><ul>  
      105 <li><a class="reference" href="#mf-py-a-modulefinder-replacement" id="id53" name="id53"><tt class="docutils literal"><span class="pre">mf.py</span></tt>: A Modulefinder Replacement</a><ul>  
      106 <li><a class="reference" href="#importtracker" id="id54" name="id54">ImportTracker</a></li>  
      107 <li><a class="reference" href="#analyze-one" id="id55" name="id55"><tt class="docutils literal"><span class="pre">analyze_one()</span></tt></a></li>  
      108 <li><a class="reference" href="#module-classes" id="id56" name="id56">Module Classes</a></li>  
      109 <li><a class="reference" href="#code-scanning" id="id57" name="id57">code scanning</a></li>  
      110 <li><a class="reference" href="#hooks" id="id58" name="id58">Hooks</a></li>  
      111 <li><a class="reference" href="#warnings" id="id59" name="id59">Warnings</a></li>  
      112 <li><a class="reference" href="#cross-reference" id="id60" name="id60">Cross Reference</a></li>  
      113 <li><a class="reference" href="#usage" id="id61" name="id61">Usage</a></li>  
    113 114 </ul>  
    114 115 </li>  
    115   <li><a class="reference" href="#iu-py-an-imputil-replacement" id="id61" name="id61"><tt class="docutils literal"><span class="pre">iu.py</span></tt>: An <em>imputil</em> Replacement</a><ul>  
    116   <li><a class="reference" href="#importmanager" id="id62" name="id62"><tt class="docutils literal"><span class="pre">ImportManager</span></tt></a></li>  
    117   <li><a class="reference" href="#importdirector" id="id63" name="id63"><tt class="docutils literal"><span class="pre">ImportDirector</span></tt></a></li>  
    118   <li><a class="reference" href="#pathimportdirector" id="id64" name="id64"><tt class="docutils literal"><span class="pre">PathImportDirector</span></tt></a></li>  
    119   <li><a class="reference" href="#owner" id="id65" name="id65"><tt class="docutils literal"><span class="pre">Owner</span></tt></a></li>  
    120   <li><a class="reference" href="#packages" id="id66" name="id66">Packages</a></li>  
    121   <li><a class="reference" href="#possibilities" id="id67" name="id67">Possibilities</a></li>  
    122   <li><a class="reference" href="#compatibility" id="id68" name="id68">Compatibility</a></li>  
    123   <li><a class="reference" href="#performance" id="id69" name="id69">Performance</a></li>  
    124   <li><a class="reference" href="#limitations" id="id70" name="id70">Limitations</a></li>  
    125   <li><a class="reference" href="#id1" id="id71" name="id71">Usage</a></li>  
      116 <li><a class="reference" href="#iu-py-an-imputil-replacement" id="id62" name="id62"><tt class="docutils literal"><span class="pre">iu.py</span></tt>: An <em>imputil</em> Replacement</a><ul>  
      117 <li><a class="reference" href="#importmanager" id="id63" name="id63"><tt class="docutils literal"><span class="pre">ImportManager</span></tt></a></li>  
      118 <li><a class="reference" href="#importdirector" id="id64" name="id64"><tt class="docutils literal"><span class="pre">ImportDirector</span></tt></a></li>  
      119 <li><a class="reference" href="#pathimportdirector" id="id65" name="id65"><tt class="docutils literal"><span class="pre">PathImportDirector</span></tt></a></li>  
      120 <li><a class="reference" href="#owner" id="id66" name="id66"><tt class="docutils literal"><span class="pre">Owner</span></tt></a></li>  
      121 <li><a class="reference" href="#packages" id="id67" name="id67">Packages</a></li>  
      122 <li><a class="reference" href="#possibilities" id="id68" name="id68">Possibilities</a></li>  
      123 <li><a class="reference" href="#compatibility" id="id69" name="id69">Compatibility</a></li>  
      124 <li><a class="reference" href="#performance" id="id70" name="id70">Performance</a></li>  
      125 <li><a class="reference" href="#limitations" id="id71" name="id71">Limitations</a></li>  
      126 <li><a class="reference" href="#id1" id="id72" name="id72">Usage</a></li>  
    126 127 </ul>  
    127 128 </li>  
     
    353 354 of fitting something useful on a diskette are not gone forever! Installer has  
    354 355 been tested with many UPX versions without problems. Just get it and install it  
    355   on your PATH, then rerun configure. For Windows, that's all you need to know.</p>  
      356 on your PATH, then rerun configure.</p>  
      357 <p>For Windows, there is a problem of compatibility between UPX and executables  
      358 generated by Microsoft Visual Studio .NET 2003 (or the equivalent free  
      359 toolkit available for download). This is especially worrisome for users of  
      360 Python 2.4+, where most extensions (and Python itself) are compiled with that  
      361 compiler. This issue has been fixed in later beta versions of UPX, so you  
      362 will need at least UPX 1.92 beta. <a class="reference" href="#configuring-your-pyinstaller-setup">Configure.py</a> will check this for you  
      363 and complain if you have an older version of UPX and you are using Python 2.4.</p>  
    356 364 <div class="sidebar">  
    357 365 <p class="first sidebar-title">UPX and Unix</p>  
     
    412 420 <p><a class="reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    413 421 </div>  
      422 <div class="section">  
      423 <h2><a class="toc-backref" href="#id12" id="a-note-on-egg-files-and-setuptools" name="a-note-on-egg-files-and-setuptools">A Note on .egg files and setuptools</a></h2>  
      424 <p><a class="reference" href="http://peak.telecommunity.com/DevCenter/setuptools">setuptools</a> is a distutils extensions which provide many benefits, including  
      425 the ability to distribute the extension as <tt class="docutils literal"><span class="pre">egg</span></tt> files. Together with the  
      426 nifty <a class="reference" href="http://peak.telecommunity.com/DevCenter/EasyInstall">easy_install</a> (a tool which automatically locates, downloads and  
      427 installs Python extensions), <tt class="docutils literal"><span class="pre">egg</span></tt> files are becoming more and more  
      428 widespread as a way for distributing Python extensions.</p>  
      429 <p><tt class="docutils literal"><span class="pre">egg</span></tt> files are actually ZIP files under the hood, and they rely on the fact  
      430 that Python 2.4 is able to transparently import modules stored within ZIP  
      431 files. PyInstaller is currently <em>not</em> able to import and extract modules  
      432 within ZIP files, so code which uses extensions packaged as <tt class="docutils literal"><span class="pre">egg</span></tt> files  
      433 cannot be packaged with PyInstaller.</p>  
      434 <p>The workaround is pretty easy: you can use <tt class="docutils literal"><span class="pre">easy_install</span> <span class="pre">-Z</span></tt> at installation  
      435 time to ask <tt class="docutils literal"><span class="pre">easy_install</span></tt> to always decompress egg files. This will allow  
      436 PyInstaller to see the files and make the package correctly. If you have already  
      437 installed the modules, you can simply decompress them within a directory with  
      438 the same name of the <tt class="docutils literal"><span class="pre">egg</span></tt> file (including also the extension).</p>  
      439 <p>Support for <tt class="docutils literal"><span class="pre">egg</span></tt> files is planned for a future release of PyInstaller.</p>  
      440 <p><a class="reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
      441 </div>  
    414 442 </div>  
    415 443 <div class="section">  
    416   <h1><a class="toc-backref" href="#id12" id="pyinstaller-utilities" name="pyinstaller-utilities">PyInstaller Utilities</a></h1>  
      444 <h1><a class="toc-backref" href="#id13" id="pyinstaller-utilities" name="pyinstaller-utilities">PyInstaller Utilities</a></h1>  
    416 444 <div class="section">  
    417   <h2><a class="toc-backref" href="#id13" id="archiveviewer" name="archiveviewer">ArchiveViewer</a></h2>  
      445 <h2><a class="toc-backref" href="#id14" id="archiveviewer" name="archiveviewer">ArchiveViewer</a></h2>  
    417 445 <pre class="literal-block">  
    418 446 python ArchiveViewer.py &lt;archivefile&gt;  
     
    435 463 <dd>Quit.</dd>  
    436 464 </dl>  
    437   <p><a class="reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
      465 <p><a class="reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    437 465 </div>  
    438 466 <div class="section">  
    439   <h2><a class="toc-backref" href="#id14" id="bindepend" name="bindepend">bindepend</a></h2>  
      467 <h2><a class="toc-backref" href="#id15" id="bindepend" name="bindepend">bindepend</a></h2>  
    439 467 <pre class="literal-block">  
    440 468 python bindepend.py &lt;executable_or_dynamic_library&gt;  
     
    449 477 </div>  
    450 478 <div class="section">  
    451   <h2><a class="toc-backref" href="#id15" id="grabversion-windows" name="grabversion-windows">GrabVersion (Windows)</a></h2>  
      479 <h2><a class="toc-backref" href="#id16" id="grabversion-windows" name="grabversion-windows">GrabVersion (Windows)</a></h2>  
    451 479 <pre class="literal-block">  
    452 480 python GrabVersion.py &lt;executable_with_version_resource&gt;  
     
    468 496 information you want, grab it's resource and edit it. Certainly easier than  
    469 497 the Version resource wizard in VC++.</p>  
    470   <p><a class="reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
      498 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    470 498 </div>  
    471 499 <div class="section">  
    472   <h2><a class="toc-backref" href="#id16" id="analyzing-dependencies" name="analyzing-dependencies">Analyzing Dependencies</a></h2>  
      500 <h2><a class="toc-backref" href="#id17" id="analyzing-dependencies" name="analyzing-dependencies">Analyzing Dependencies</a></h2>  
    472 500 <p>You can interactively track down dependencies, including getting  
    473 501 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  
    474 502 Replacement</a></p>  
    475   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
      503 <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
    475 503 </div>  
    476 504 </div>  
    477 505 <div class="section">  
    478   <h1><a class="toc-backref" href="#id17" id="spec-files" name="spec-files">Spec Files</a></h1>  
      506 <h1><a class="toc-backref" href="#id18" id="spec-files" name="spec-files">Spec Files</a></h1>  
    478 506 <div class="section">  
    479   <h2><a class="toc-backref" href="#id18" id="introduction" name="introduction">Introduction</a></h2>  
      507 <h2><a class="toc-backref" href="#id19" id="introduction" name="introduction">Introduction</a></h2>  
    479 507 <p>Spec files are in Python syntax. They are evaluated by Build.py. A simplistic  
    480 508 spec file might look like this:</p>  
     
    514 542 single-file deployment, the binaries. In a single-directory deployment, a  
    515 543 directory is built containing a slim executable and the binaries.</p>  
    516   <p><a class="reference reference reference reference reference reference reference reference reference reference reference reference reference" href="#pyinstaller-manual">Back to Top</a></p>  
      544 <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>  
    516 544 </div>  
    517 545 <div class="section">  
    518   <h2><a class="toc-backref" href="#id19" id="toc-class-table-of-contents" name="toc-class-table-of-contents">TOC Class (Table of Contents)</a></h2>  
      546 <h2><a class="toc-backref" href="#id20" id="toc-class-table-of-contents" name="toc-class-table-of-contents">TOC Class (Table of Contents)</a></h2>  
    518 546 <p>Before you can do much with a spec file, you need to understand the  
    519 547 <tt class="docutils literal"><span class="pre">TOC</span></tt> (Table Of Contents) class.</p>  
     
    662 690 multiple executables with minimal redundancy. You'll need some top level code  
    663 691 in each executable to mount the common <tt class="docutils literal"><span class="pre">PYZ</span></tt>.</p>  
    664   <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>  
      692 <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>  
    664 692 </div>  
    665 693 <div class="section">  
    666   <h2><a class="toc-backref" href="#id20" id="target-subclasses" name="target-subclasses">Target Subclasses</a></h2>  
      694 <h2><a class="toc-backref" href="#id21" id="target-subclasses" name="target-subclasses">Target Subclasses</a></h2>  
    666 694 <div class="section">  
    667   <h3><a class="toc-backref" href="#id21" id="analysis" name="analysis">Analysis</a></h3>  
      695 <h3><a class="toc-backref" href="#id22" id="analysis" name="analysis">Analysis</a></h3>  
    667 695 <pre class="literal-block">  
    668 696 Analysis(scripts, pathex=None, hookspath=None, excludes=None)  
     
    694 722 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>  
    695 723 </dl>  
    696   <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>  
      724 <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>  
    696 724 </div>  
    697 725 <div class="section">  
    698   <h3><a class="toc-backref" href="#id22" id="pyz" name="pyz">PYZ</a></h3>  
      726 <h3><a class="toc-backref" href="#id23" id="pyz" name="pyz">PYZ</a></h3>  
    698 726 <pre class="literal-block">  
    699 727 PYZ(toc, name=None, level=9)  
     
    709 737 <dd>The Zlib compression level to use. If 0, the zlib module is not required.</dd>  
    710 738 </dl>  
    711   <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>  
      739 <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>  
    711 739 </div>  
    712 740 <div class="section">  
    713   <h3><a class="toc-backref" href="#id23" id="pkg" name="pkg">PKG</a></h3>  
      741 <h3><a class="toc-backref" href="#id24" id="pkg" name="pkg">PKG</a></h3>  
    713 741 <p>Generally, you will not need to create your own <tt class="docutils literal"><span class="pre">PKGs</span></tt>, as the <tt class="docutils literal"><span class="pre">EXE</span></tt> will do it for  
    714 742 you. This is one way to include read-only data in a single-file deployment,  
     
    732 760 forwarded to its container (usually a <tt class="docutils literal"><span class="pre">COLLECT</span></tt>).</dd>  
    733 761 </dl>  
    734   <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>  
      762 <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>  
    734 762 </div>  
    735 763 <div class="section">  
    736   <h3><a class="toc-backref" href="#id24" id="exe" name="exe">EXE</a></h3>  
      764 <h3><a class="toc-backref" href="#id25" id="exe" name="exe">EXE</a></h3>  
    736 764 <pre class="literal-block">  
    737 765 EXE(*args, **kws)  
     
    772 800 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  
    773 801 non-ELF when using <tt class="docutils literal"><span class="pre">Make.py</span> <span class="pre">-n</span></tt>.</p>  
    774   <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>  
      802 <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>  
    774 802 </div>  
    775 803 <div class="section">  
    776   <h3><a class="toc-backref" href="#id25" id="dll" name="dll">DLL</a></h3>  
      804 <h3><a class="toc-backref" href="#id26" id="dll" name="dll">DLL</a></h3>  
    776 804 <p>On Windows, this provides support for doing in-process COM servers. It is not  
    777 805 generalized. However, embedders can follow the same model to build a special  
     
    781 809 write your own dll, but thanks to Allan Green for refactoring the C code and  
    782 810 making that a managable task.</p>  
    783   <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>  
      811 <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>  
    783 811 </div>  
    784 812 <div class="section">  
    785   <h3><a class="toc-backref" href="#id26" id="collect" name="collect">COLLECT</a></h3>  
      813 <h3><a class="toc-backref" href="#id27" id="collect" name="collect">COLLECT</a></h3>  
    785 813 <pre class="literal-block">  
    786 814 COLLECT(*args, **kws)  
     
    799 827 </dd>  
    800 828 </dl>  
    801   <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>  
      829 <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>  
    801 829 </div>  
    802 830 <div class="section">  
    803   <h3><a class="toc-backref" href="#id27" id="tree" name="tree">Tree</a></h3>  
      831 <h3><a class="toc-backref" href="#id28" id="tree" name="tree">Tree</a></h3>  
    803 831 <pre class="literal-block">  
    804 832 Tree(root, prefix=None, excludes=None)  
     
    823 851 <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  
    824 852 in the section on <tt class="docutils literal"><span class="pre">TOCs</span></tt>.</p>  
    825   <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>  
      853 <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>  
    825 853 </div>  
    826 854 </div>  
    827 855 </div>  
    828 856 <div class="section">  
    829   <h1><a class="toc-backref" href="#id28" id="when-things-go-wrong" name="when-things-go-wrong">When Things Go Wrong</a></h1>  
      857 <h1><a class="toc-backref" href="#id29" id="when-things-go-wrong" name="when-things-go-wrong">When Things Go Wrong</a></h1>  
    829 857 <div class="section">  
    830   <h2><a class="toc-backref" href="#id29" id="finding-out-what-went-wrong" name="finding-out-what-went-wrong">Finding out What Went Wrong</a></h2>  
      858 <h2><a class="toc-backref" href="#id30" id="finding-out-what-went-wrong" name="finding-out-what-went-wrong">Finding out What Went Wrong</a></h2>  
    830 858 <div class="section">  
    831   <h3><a class="toc-backref" href="#id30" id="buildtime-warnings" name="buildtime-warnings">Buildtime Warnings</a></h3>  
      859 <h3><a class="toc-backref" href="#id31" id="buildtime-warnings" name="buildtime-warnings">Buildtime Warnings</a></h3>  
    831 859 <p>When an <tt class="docutils literal"><span class="pre">Analysis</span></tt> step runs, it produces a warnings file (named <tt class="docutils literal"><span class="pre">warnproject.txt</span></tt>)  
    832 860 in the spec file's directory. Generally, most of these warnings are harmless.  
     
    859 887 <p>Any problem detected here can be handled by hooking the analysis of the module.  
    860 888 See <a class="reference" href="#listing-hidden-imports">Listing Hidden Imports</a> below for how to do it.</p>  
    861   <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>  
      889 <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>  
    861 889 </div>  
    862 890 <div class="section">  
    863   <h3><a class="toc-backref" href="#id31" id="getting-debug-messages" name="getting-debug-messages">Getting Debug Messages</a></h3>  
      891 <h3><a class="toc-backref" href="#id32" id="getting-debug-messages" name="getting-debug-messages">Getting Debug Messages</a></h3>  
    863 891 <p>Setting <tt class="docutils literal"><span class="pre">debug=1</span></tt> on an <tt class="docutils literal"><span class="pre">EXE</span></tt> will cause the executable to put out progress  
    864 892 messages (for console apps, these go to stdout; for Windows apps, these show as  
    865 893 MessageBoxes). This can be useful if you are doing complex packaging, or your  
    866 894 app doesn't seem to be starting, or just to learn how the runtime works.</p>  
    867   <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>  
      895 <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>  
    867 895 </div>  
    868 896 <div class="section">  
    869   <h3><a class="toc-backref" href="#id32" id="getting-python-s-verbose-imports" name="getting-python-s-verbose-imports">Getting Python's Verbose Imports</a></h3>  
      897 <h3><a class="toc-backref" href="#id33" id="getting-python-s-verbose-imports" name="getting-python-s-verbose-imports">Getting Python's Verbose Imports</a></h3>  
    869 897 <p>You can also pass a <tt class="docutils literal"><span class="pre">-v</span></tt> (verbose imports) flag to the embedded Python. This can  
    870 898 be extremely useful. I usually try it even on apparently working apps, just to  
     
    886 914 <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  
    887 915 <tt class="docutils literal"><span class="pre">console=0</span></tt>.</p>  
    888   <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>  
      916 <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>  
    888 916 </div>  
    889 917 </div>  
    890 918 <div class="section">  
    891   <h2><a class="toc-backref" href="#id33" id="helping-installer-find-modules" name="helping-installer-find-modules">Helping Installer Find Modules</a></h2>  
      919 <h2><a class="toc-backref" href="#id34" id="helping-installer-find-modules" name="helping-installer-find-modules">Helping Installer Find Modules</a></h2>  
    891 919 <div class="section">  
    892   <h3><a class="toc-backref" href="#id34" id="extending-the-path" name="extending-the-path">Extending the Path</a></h3>  
      920 <h3><a class="toc-backref" href="#id35" id="extending-the-path" name="extending-the-path">Extending the Path</a></h3>  
    892 920 <p>When the analysis phase cannot find needed modules, it may be that the code is  
    893 921 manipulating <tt class="docutils literal"><span class="pre">sys.path</span></tt>. The easiest thing to do in this case is tell <tt class="docutils literal"><span class="pre">Analysis</span></tt>  
     
    909 937 </pre>  
    910 938 <p>(on *nix, use <tt class="docutils literal"><span class="pre">:</span></tt> as the path separator).</p>  
    911   <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>  
      939 <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>  
    911 939 </div>  
    912 940 <div class="section">  
    913   <h3><a class="toc-backref" href="#id35" id="listing-hidden-imports" name="listing-hidden-imports">Listing Hidden Imports</a></h3>  
      941 <h3><a class="toc-backref" href="#id36" id="listing-hidden-imports" name="listing-hidden-imports">Listing Hidden Imports</a></h3>  
    913 941 <p>Hidden imports are fairly common. These can occur when the code is using  
    914 942 <tt class="docutils literal"><span class="pre">__import__</span></tt> (or, perhaps <tt class="docutils literal"><span class="pre">exec</span></tt> or <tt class="docutils literal"><span class="pre">eval</span></tt>), in which case you will see a warning in  
     
    944 972 <p>If you successfully hook a publicly distributed module in this way, please send  
    945 973 us the hook so we can make it available to others.</p>  
    946   <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>  
      974 <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>  
    946 974 </div>  
    947 975 <div class="section">  
    948   <h3><a class="toc-backref" href="#id36" id="extending-a-package-s-path" name="extending-a-package-s-path">Extending a Package's <tt class="docutils literal docutils literal"><span class="pre">__path__</span></tt></a></h3>  
      976 <h3><a class="toc-backref" href="#id37" id="extending-a-package-s-path" name="extending-a-package-s-path">Extending a Package's <tt class="docutils literal docutils literal"><span class="pre">__path__</span></tt></a></h3>  
    948 976 <p>Python allows a package to extend the search path used to find modules and  
    949 977 sub-packages through the <tt class="docutils literal"><span class="pre">__path__</span></tt> mechanism. Normally, a package's <tt class="docutils literal"><span class="pre">__path__</span></tt> has  
     
    968 996 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>  
    969 997 <p>Once in awhile, that's not enough.</p>  
    970   <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>  
      998 <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>  
    970 998 </div>  
    971 999 <div class="section">  
    972   <h3><a class="toc-backref" href="#id37" id="changing-runtime-behavior" name="changing-runtime-behavior">Changing Runtime Behavior</a></h3>  
      1000 <h3><a class="toc-backref" href="#id38" id="changing-runtime-behavior" name="changing-runtime-behavior">Changing Runtime Behavior</a></h3>  
    972 1000 <p>More bizarre situations can be accomodated with runtime hooks. These are small  
    973 1001 scripts that manipulate the environment before your main script runs,  
     
    993 1021 can generate modules at runtime (to disk), and the generated modules can be  
    994 1022 found in the win32com package.</p>  
    995   <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>  
      1023 <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>  
    995 1023 </div>  
    996 1024 <div class="section">  
    997   <h3><a class="toc-backref" href="#id38" id="adapting-to-being-frozen" name="adapting-to-being-frozen">Adapting to being &quot;frozen&quot;</a></h3>  
      1025 <h3><a class="toc-backref" href="#id39" id="adapting-to-being-frozen" name="adapting-to-being-frozen">Adapting to being &quot;frozen&quot;</a></h3>  
    997 1025 <p>In most sophisticated apps, it becomes necessary to figure out (at runtime)  
    998 1026 whether you're running &quot;live&quot; or &quot;frozen&quot;. For example, you might have a  
     
    1006 1034 <p>For really advanced users, you can access the <tt class="docutils literal"><span class="pre">iu.ImportManager</span></tt> as  
    1007 1035 <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>  
    1008   <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>  
      1036 <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>  
    1008 1036 </div>  
    1009 1037 <div class="section">  
    1010   <h3><a class="toc-backref" href="#id39" id="accessing-data-files" name="accessing-data-files">Accessing Data Files</a></h3>  
      1038 <h3><a class="toc-backref" href="#id40" id="accessing-data-files" name="accessing-data-files">Accessing Data Files</a></h3>  
    1010 1038 <p>In a <tt class="docutils literal"><span class="pre">--onedir</span></tt> distribution, this is easy: pass a list of your data files  
    1011 1039 (in <tt class="docutils literal"><span class="pre">TOC</span></tt> format) to the <tt class="docutils literal"><span class="pre">COLLECT</span></tt>, and they will show up in the distribution  
     
    1034 1062 example (the TCL and TK lib files are in a PKG which is opened in place, and  
    1035 1063 then extracted to the filesystem).</p>  
    1036   <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>  
      1064 <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>  
    1036 1064 </div>  
    1037 1065 </div>  
    1038 1066 </div>  
    1039 1067 <div class="section">  
    1040   <h1><a class="toc-backref" href="#id40" id="miscellaneous" name="miscellaneous">Miscellaneous</a></h1>  
      1068 <h1><a class="toc-backref" href="#id41" id="miscellaneous" name="miscellaneous">Miscellaneous</a></h1>  
    1040 1068 <div class="section">  
    1041   <h2><a class="toc-backref" href="#id41" id="pmw-python-mega-widgets" name="pmw-python-mega-widgets">Pmw -- Python Mega Widgets</a></h2>  
      1069 <h2><a class="toc-backref" href="#id42" id="pmw-python-mega-widgets" name="pmw-python-mega-widgets">Pmw -- Python Mega Widgets</a></h2>  
    1041 1069 <p><a class="reference" href="http://pmw.sourceforge.net/">Pmw</a> comes with a script named <tt class="docutils literal"><span class="pre">bundlepmw</span></tt> in the bin directory. If you follow the  
    1042 1070 instructions in that script, you'll end up with a module named <tt class="docutils literal"><span class="pre">Pmw.py</span></tt>. Ensure  
    1043 1071 that Builder finds that module and not the development package.</p>  
    1044