Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
3d62c059
Commit
3d62c059
authored
Jun 20, 2003
by
Jack Jansen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Updated.
parent
96436802
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
37 additions
and
45 deletions
+37
-45
Mac/OSX/README
Mac/OSX/README
+37
-45
No files found.
Mac/OSX/README
View file @
3d62c059
Building and using a framework-based Python on Mac OS X.
--------------------------------------------------------
This document provides a quick introduction to framework-based Python
.
It is rather terse and probably incomplete, please send me feedback
.
This document provides a quick introduction to framework-based Python
, its
advantages, and how to build it
.
1. Why would I want a framework Python in stead of a normal static Python?
--------------------------------------------------------------------------
...
...
@@ -15,12 +15,16 @@ While it is technically possible to create a .app without using frameworks you
will have to do the work yourself if you really want this.
A second reason for using frameworks is that they put Python-related items in
only two places: /Library/Framework/Python.framework and /Applications/
Python
.
only two places: /Library/Framework/Python.framework and /Applications/
MacPython-2.3
.
This simplifies matters for users installing Python from a binary distribution
if they want to get rid of it again. Moreover, due to the way frameworks work
a user without admin privileges can install a binary distribution in his or
her home directory without recompilation.
Incidentally, the procedure described here is also the procedure that is
used to create the MacPython binary installer, so the information here
should theoretically allow you to rebuild that.
2. How does a framework Python differ from a normal static Python?
------------------------------------------------------------------
...
...
@@ -51,7 +55,7 @@ information.
This directory contains a Makefile that will create a couple of python-related
applications (fullblown OSX .app applications, that is) in
/Applications/
Python
, and a hidden helper application Python.app inside the
/Applications/
MacPython-2.3
, and a hidden helper application Python.app inside the
Python.framework, and unix tools "python" and "pythonw" into /usr/local/bin.
In addition it has a target "installmacsubtree" that installs the relevant
portions of the Mac subtree into the Python.framework.
...
...
@@ -65,10 +69,10 @@ in the sequence
This sequence will put the framework in /Library/Framework/Python.framework,
the applications in /Applications/Python and the unix tools in /usr/local/bin.
Build
ing in another place, for instance $HOME/Library/Frameworks if you have
Install
ing in another place, for instance $HOME/Library/Frameworks if you have
no admin privileges on your machine, has only been tested very lightly. This
can be done by configuring with --enable-framework=$HOME/Library/Frameworks.
The other two directories, /Applications/
Python
and /usr/local/bin, will then
The other two directories, /Applications/
MacPython-2.3
and /usr/local/bin, will then
also be deposited in $HOME. This is sub-optimal for the unix tools, which you
would want in $HOME/bin, but there is no easy way to fix this right now.
...
...
@@ -81,6 +85,10 @@ If you want to install some part, but not all, read the main Makefile. The
frameworkinstall is composed of a couple of sub-targets that install the
framework itself, the Mac subtree, the applications and the unix tools.
There is an extra target frameworkinstallextras that is not part of the
normal frameworkinstall which installs the Demo and Tools directories
into /Applications/MacPython-2.3, this is useful for binary distributions.
If you want to run the Makefile here directly, in stead of through the main
Makefile, you will have to pass various variable-assignments. Read the
beginning of the Makefile for details.
...
...
@@ -111,44 +119,28 @@ non-GUI and GUI python scripts from the command line, respectively.
6. How do I create a binary distribution?
-----------------------------------------
Note: this section is work-in-progress.
First, to make sure there's no contamination, it is best to remove your
existing Python installation (clear out /Library/Frameworks/Python.framework
and /Applications/Python). Also, after build/install is finished check that
nothing has shown up in those two locations.
Create a subdirectory of the main python directory, say build-pythondist. In
there, run
../configure --enable-framework=/tmp/pythondist/Library/Frameworks \
LDFLAGS=-Wl,-x
make
make frameworkinstall
This installs a complete distribution set in /tmp/pythondist: in a framework
build all other pathnames are computed from the framework pathname.
Optionally you may want to include the full documentation in the binary installer.
To this end, execute the following commands:
python.exe ../Mac/OSX/setupDocs.py build
python.exe ../Mac/OSX/setupDocs.py install \
--prefix=/tmp/python/Library/Frameworks/Python.framework/Versions/Current
Note that the unix tools in /tmp/pythondist are wrong, these have to be
removed, and the installer post-install script should recreate them on the
target system. Also, the .pyc and .pyo files need to be removed:
rm -rf /tmp/pythondist/usr
python.exe ../Mac/script/zappycfiles.py /tmp/pythondist
Finally, create the .pkg file with a commandline like
python ../Mac/scripts/buildpkg.py \
--Title=MacPython-X \
--Version=2.3a0 \
--Description="Python for Mac OS X, framework based" \
/tmp/pythondist
This creates a MacPython-X.pkg in the current directory.
TBD: provide postinstall scripts to precompile .pyc/.pyo files, and to recreate
the unix programs.
Go to the Mac/OSX/Dist directory. There you find a script "build" that
does all the work: it configures and builds a framework Python, installs
it, creates the installer package file and packs this in a DMG image.
All of this is normally done completely isolated in /tmp/_py, so it does not
use your normal build directory nor does it install into /.
Because the build script locates the Python source tree relative to its own
pathname you may have to run it with a full pathname. If you are debugging your
install you can pass one argument: the pathname where the build directory
is located (i.e. where configure and make will be run), then this directory
will be saved between runs of the build script. Do *not* specify your normal
build directory here.
build will ask you whether you have updated the readme file, and it will offer
to include the full documentation in the installer. That option has not
been used for a while, and it may not work.
If you need to execute code on the client machine after installing Python
you can add this to resources/postflight. If you need to do even stranger things
you have to read Apple's documentation on PackageMaker and read the source
of Mac/scripts/buildpkg.py.
7. Odds and ends.
-----------------
...
...
@@ -164,4 +156,4 @@ macresource module and the Mac/OSX/Makefile cater for this, and create
".rsrc.df.rsrc" files on the fly that are normal datafork-based resource
files.
Jack Jansen, jack@oratrix.com, 06-Sep-02
\ No newline at end of file
Jack Jansen, Jack.Jansen@cwi.nl, 20-Jun-2003.
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment