974a50f1bb
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42102 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
424 lines
12 KiB
HTML
424 lines
12 KiB
HTML
<?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 "--root=<path>" after the "install" command. This will use
|
|
<path> 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 "release" instead of
|
|
"hybrid" when building wxWidgets and add "FINAL=1" 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>
|