wxWidgets/wxPython/docs/INSTALL.html

424 lines
12 KiB
HTML
Raw Normal View History

<?xml version="1.0" encoding="iso-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
<title>Installing wxPython 2.7 from Source</title>
<style type="text/css">
/*
:Author: David Goodger
:Contact: goodger@users.sourceforge.net
:Date: $Date$
:Revision: $Revision$
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
customize this style sheet.
*/
/* used to remove borders from tables and images */
.borderless, table.borderless td, table.borderless th {
border: 0 }
table.borderless td, table.borderless th {
/* Override padding for "table.docutils td" with "! important".
The right padding separates the table cells. */
padding: 0 0.5em 0 0 ! important }
.first {
/* Override more specific margin styles with "! important". */
margin-top: 0 ! important }
.last, .with-subtitle {
margin-bottom: 0 ! important }
.hidden {
display: none }
a.toc-backref {
text-decoration: none ;
color: black }
blockquote.epigraph {
margin: 2em 5em ; }
dl.docutils dd {
margin-bottom: 0.5em }
/* Uncomment (and remove this text!) to get bold-faced definition list terms
dl.docutils dt {
font-weight: bold }
*/
div.abstract {
margin: 2em 5em }
div.abstract p.topic-title {
font-weight: bold ;
text-align: center }
div.admonition, div.attention, div.caution, div.danger, div.error,
div.hint, div.important, div.note, div.tip, div.warning {
margin: 2em ;
border: medium outset ;
padding: 1em }
div.admonition p.admonition-title, div.hint p.admonition-title,
div.important p.admonition-title, div.note p.admonition-title,
div.tip p.admonition-title {
font-weight: bold ;
font-family: sans-serif }
div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title {
color: red ;
font-weight: bold ;
font-family: sans-serif }
/* Uncomment (and remove this text!) to get reduced vertical space in
compound paragraphs.
div.compound .compound-first, div.compound .compound-middle {
margin-bottom: 0.5em }
div.compound .compound-last, div.compound .compound-middle {
margin-top: 0.5em }
*/
div.dedication {
margin: 2em 5em ;
text-align: center ;
font-style: italic }
div.dedication p.topic-title {
font-weight: bold ;
font-style: normal }
div.figure {
margin-left: 2em ;
margin-right: 2em }
div.footer, div.header {
clear: both;
font-size: smaller }
div.line-block {
display: block ;
margin-top: 1em ;
margin-bottom: 1em }
div.line-block div.line-block {
margin-top: 0 ;
margin-bottom: 0 ;
margin-left: 1.5em }
div.sidebar {
margin-left: 1em ;
border: medium outset ;
padding: 1em ;
background-color: #ffffee ;
width: 40% ;
float: right ;
clear: right }
div.sidebar p.rubric {
font-family: sans-serif ;
font-size: medium }
div.system-messages {
margin: 5em }
div.system-messages h1 {
color: red }
div.system-message {
border: medium outset ;
padding: 1em }
div.system-message p.system-message-title {
color: red ;
font-weight: bold }
div.topic {
margin: 2em }
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
margin-top: 0.4em }
h1.title {
text-align: center }
h2.subtitle {
text-align: center }
hr.docutils {
width: 75% }
img.align-left {
clear: left }
img.align-right {
clear: right }
ol.simple, ul.simple {
margin-bottom: 1em }
ol.arabic {
list-style: decimal }
ol.loweralpha {
list-style: lower-alpha }
ol.upperalpha {
list-style: upper-alpha }
ol.lowerroman {
list-style: lower-roman }
ol.upperroman {
list-style: upper-roman }
p.attribution {
text-align: right ;
margin-left: 50% }
p.caption {
font-style: italic }
p.credits {
font-style: italic ;
font-size: smaller }
p.label {
white-space: nowrap }
p.rubric {
font-weight: bold ;
font-size: larger ;
color: maroon ;
text-align: center }
p.sidebar-title {
font-family: sans-serif ;
font-weight: bold ;
font-size: larger }
p.sidebar-subtitle {
font-family: sans-serif ;
font-weight: bold }
p.topic-title {
font-weight: bold }
pre.address {
margin-bottom: 0 ;
margin-top: 0 ;
font-family: serif ;
font-size: 100% }
pre.literal-block, pre.doctest-block {
margin-left: 2em ;
margin-right: 2em ;
background-color: #eeeeee }
span.classifier {
font-family: sans-serif ;
font-style: oblique }
span.classifier-delimiter {
font-family: sans-serif ;
font-weight: bold }
span.interpreted {
font-family: sans-serif }
span.option {
white-space: nowrap }
span.pre {
white-space: pre }
span.problematic {
color: red }
span.section-subtitle {
/* font-size relative to parent (h1..h6 element) */
font-size: 80% }
table.citation {
border-left: solid 1px gray;
margin-left: 1px }
table.docinfo {
margin: 2em 4em }
table.docutils {
margin-top: 0.5em ;
margin-bottom: 0.5em }
table.footnote {
border-left: solid 1px black;
margin-left: 1px }
table.docutils td, table.docutils th,
table.docinfo td, table.docinfo th {
padding-left: 0.5em ;
padding-right: 0.5em ;
vertical-align: top }
table.docutils th.field-name, table.docinfo th.docinfo-name {
font-weight: bold ;
text-align: left ;
white-space: nowrap ;
padding-left: 0 }
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
font-size: 100% }
tt.docutils {
background-color: #eeeeee }
ul.auto-toc {
list-style-type: none }
</style>
</head>
<body>
<div class="document" id="installing-wxpython-2-7-from-source">
<h1 class="title">Installing wxPython 2.7 from Source</h1>
<p>This document will describe the few differences and additions to the
content in the <a class="reference" href="BUILD.html">BUILD</a> document for installing wxPython built from
source. Please follow the intstructions both in this file and in
<a class="reference" href="BUILD.html">BUILD</a> to perform this task. Where there is overlap the items
described here will take precedence for doing installations.</p>
<div class="section">
<h1><a id="installing-on-unix-like-systems-not-os-x" name="installing-on-unix-like-systems-not-os-x">Installing on Unix-like Systems (not OS X)</a></h1>
<ol class="arabic">
<li><p class="first">When building wxWidgets you need to decide if you want it to be a
private copy only accessed by wxPython, or if you would like it to
be installed in a stanard location such as /usr. Or perhaps you
already have a version of wxWidgets installed on your system (such
as from an RPM) and you want wxPython to use that version too. If
so then you'll want to ensure that the flags and options used to
build the installed version are compatible with wxPython.</p>
</li>
<li><p class="first">If you do decide to build and install your own wxWidgets then there
are a few tweaks to the configure flags described in BUILD.txt that
you will probably want to make. Instead of --enable-debug use
this configure flag:</p>
<pre class="literal-block">
--enable-optimize \
</pre>
<p>Normally I also use the following flag in order to have wxWidgets
runtime assertions turned into Python exceptions where possible.
It does add extra code to the build but probably not enough to
worry about it. However if you want to get as lean a build as
possible you can leave it out, but if your code does something bad
then instead of exceptions you'll likely get a crash:</p>
<pre class="literal-block">
--enable-debug_flag \
</pre>
<p>If you are building a private copy of wxWidgets (IOW, not installed
in a standard library location) then it can be kind of a hassle to
always have to set the LD_LIBRARY_PATH variable so wxPython can
find the wxWidgets shared libraries. You can hard code the library
path into the binaries by using the rpath option when configuring
wxWidgets. For example:</p>
<pre class="literal-block">
--enable-rpath=/opt/wx/2.7/lib \
</pre>
<p>SOLARIS NOTE: The --enable-rpath option may cause problems when
using wxGTK on Solaris when compiling wxPython as described below.
The woraround is to not use --enable-rpath flag for configure, but
in that case all wxPython applications <em>must</em> have the
LD_LIBRARY_PATH set to include $WXPREF/lib, or you can use the
'crle' program to modify the runtime linking environment. If this
is the only installation of wxGTK on the system then you can use a
system library path for prefix and not have to worry about it at
all.</p>
</li>
<li><p class="first">Build and install wxGTK as described in BUILD.txt.</p>
</li>
<li><p class="first">In addition to building wxPython as described in BUILD.txt, you can
install it to Python's site-packages dir, as well as some scripts
into the same bin dir used by Python by using this command, plus
whatever WXPORT, UNICODE, etc. settings you used for the initial
build step:</p>
<pre class="literal-block">
python2.5 setup.py install
</pre>
<p>If you would like to install to some place besides the prefix where
Python is installed, (such as to your home directory) then you can
add &quot;--root=&lt;path&gt;&quot; after the &quot;install&quot; command. This will use
&lt;path&gt; as the prefix and will install scripts to a bin subdir and
the wxPython packages to a lib subdir. To use wxPython like this
you'll need to ensure that the directory containing wxPython is
contained in the PYTHONPATH environment variable.</p>
</li>
</ol>
</div>
<div class="section">
<h1><a id="installing-on-os-x" name="installing-on-os-x">Installing on OS X</a></h1>
<p>Installing wxPython on OS X is nearly the same as the Unix
instructions above, except for a few small, but important details:</p>
<ol class="arabic simple">
<li>The --enable-rpath configure option is not needed since the path to
the wxWidgets dylibs will automatically be encoded into the
extension modules when they are built. If you end up moving the
wxWidgets dynlibs to some other location (such as inside the .app
bundle of your applicaiton for distribution to other users,) then
you will need to set DYLD_LIBRARY_PATH to this location so the
dylibs can be found at runtime.</li>
<li>Depending on the version of OS X Python may be installed in
different locations. On 10.2 (Jaguar) you need to download and
install MacPython-OSX-2.3 from <a class="reference" href="http://www.python.org/">http://www.python.org/</a> and the
Python Framework will then be installed in /Library/Frameworks. On
10.3 (Panther) Apple supplies the Python Framework as part of the
OS install, but it will be located in /System/Library/Frameworks
instead. However, on Panther the site-packages dir is sym-linked
to /Library/Python/2.3 so the wxPython packages will end up there,
although they will still be visible from site-packages. If you are
building distributions of wxPython to be installed on other
machines be careful to install to /Library/Python/2.3. To
complicate things further, the Jaguar version, or a custom build
you do yourself will end up in /Library/Frameworks even on
Panther...</li>
<li>You need to use pythonw at the command line or the PythonLauncher
app to run wxPython apps, otherwise the app will not be able to
fully use the GUI display.</li>
</ol>
</div>
<div class="section">
<h1><a id="installing-on-windows" name="installing-on-windows">Installing on Windows</a></h1>
<ol class="arabic">
<li><p class="first">Build wxWidgets and wxPython as described in BUILD.txt. If you
would rather have a version without the code that turns runtime
assertions into Python exceptions, then use &quot;release&quot; instead of
&quot;hybrid&quot; when building wxWidgets and add &quot;FINAL=1&quot; to the setup.py
command line.</p>
</li>
<li><p class="first">Install wxPython like this. Remember to add any additional flags
you added for the build such as UNICODE or USE_SWIG:</p>
<pre class="literal-block">
python setup.py install
</pre>
</li>
<li><p class="first">Copy the wxWidgets DLLs to the wx package directory so they can be
found at runtime by the extension modules without requiring that
they be installed on the PATH:</p>
<pre class="literal-block">
copy %WXWIN%\\lib\\vc_dll\\wx*h_*.dll c:\\Python25\\Lib\\site-packages\\wx
</pre>
</li>
</ol>
</div>
</div>
</body>
</html>