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>
 |